AUTH-2858: Set file to disable autoupdate
This commit is contained in:
parent
33701f50ec
commit
28d556b8d4
|
@ -4,12 +4,14 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"golang.org/x/crypto/ssh/terminal"
|
"golang.org/x/crypto/ssh/terminal"
|
||||||
"gopkg.in/urfave/cli.v2"
|
"gopkg.in/urfave/cli.v2"
|
||||||
|
|
||||||
|
"github.com/cloudflare/cloudflared/cmd/cloudflared/config"
|
||||||
"github.com/cloudflare/cloudflared/logger"
|
"github.com/cloudflare/cloudflared/logger"
|
||||||
"github.com/equinox-io/equinox"
|
"github.com/equinox-io/equinox"
|
||||||
"github.com/facebookgo/grace/gracenet"
|
"github.com/facebookgo/grace/gracenet"
|
||||||
|
@ -21,6 +23,8 @@ const (
|
||||||
appID = "app_idCzgxYerVD"
|
appID = "app_idCzgxYerVD"
|
||||||
noUpdateInShellMessage = "cloudflared will not automatically update when run from the shell. To enable auto-updates, run cloudflared as a service: https://developers.cloudflare.com/argo-tunnel/reference/service/"
|
noUpdateInShellMessage = "cloudflared will not automatically update when run from the shell. To enable auto-updates, run cloudflared as a service: https://developers.cloudflare.com/argo-tunnel/reference/service/"
|
||||||
noUpdateOnWindowsMessage = "cloudflared will not automatically update on Windows systems."
|
noUpdateOnWindowsMessage = "cloudflared will not automatically update on Windows systems."
|
||||||
|
noUpdateManagedPackageMessage = "cloudflared will not automatically update if installed by a package manager."
|
||||||
|
isManagedInstallFile = ".installedFromPackageManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -98,6 +102,11 @@ func Update(_ *cli.Context) error {
|
||||||
return errors.Wrap(err, "error setting up logger")
|
return errors.Wrap(err, "error setting up logger")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if wasInstalledFromPackageManager() {
|
||||||
|
logger.Error("cloudflared was installed by a package manager. Please update using the same method.")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
updateOutcome := loggedUpdate(logger)
|
updateOutcome := loggedUpdate(logger)
|
||||||
if updateOutcome.Error != nil {
|
if updateOutcome.Error != nil {
|
||||||
return &statusErr{updateOutcome.Error}
|
return &statusErr{updateOutcome.Error}
|
||||||
|
@ -217,6 +226,11 @@ func SupportAutoUpdate(logger logger.Service) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if wasInstalledFromPackageManager() {
|
||||||
|
logger.Info(noUpdateManagedPackageMessage)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
if isRunningFromTerminal() {
|
if isRunningFromTerminal() {
|
||||||
logger.Info(noUpdateInShellMessage)
|
logger.Info(noUpdateInShellMessage)
|
||||||
return false
|
return false
|
||||||
|
@ -224,6 +238,11 @@ func SupportAutoUpdate(logger logger.Service) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func wasInstalledFromPackageManager() bool {
|
||||||
|
ok, _ := config.FileExists(filepath.Join(config.DefaultUnixConfigLocation, isManagedInstallFile))
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
func isRunningFromTerminal() bool {
|
func isRunningFromTerminal() bool {
|
||||||
return terminal.IsTerminal(int(os.Stdout.Fd()))
|
return terminal.IsTerminal(int(os.Stdout.Fd()))
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -eu
|
set -eu
|
||||||
ln -s /usr/bin/cloudflared /usr/local/bin/cloudflared
|
ln -s /usr/bin/cloudflared /usr/local/bin/cloudflared
|
||||||
|
mkdir -p /usr/local/etc/cloudflared/
|
||||||
|
touch /usr/local/etc/cloudflared/.installedFromPackageManager || true
|
||||||
|
|
Loading…
Reference in New Issue