Skip to content

Commit 28d556b

Browse files
committed
AUTH-2858: Set file to disable autoupdate
1 parent 33701f5 commit 28d556b

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

cmd/cloudflared/updater/update.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,27 @@ import (
44
"context"
55
"fmt"
66
"os"
7+
"path/filepath"
78
"runtime"
89
"time"
910

1011
"golang.org/x/crypto/ssh/terminal"
1112
"gopkg.in/urfave/cli.v2"
1213

14+
"github.com/cloudflare/cloudflared/cmd/cloudflared/config"
1315
"github.com/cloudflare/cloudflared/logger"
1416
"github.com/equinox-io/equinox"
1517
"github.com/facebookgo/grace/gracenet"
1618
"github.com/pkg/errors"
1719
)
1820

1921
const (
20-
DefaultCheckUpdateFreq = time.Hour * 24
21-
appID = "app_idCzgxYerVD"
22-
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/"
23-
noUpdateOnWindowsMessage = "cloudflared will not automatically update on Windows systems."
22+
DefaultCheckUpdateFreq = time.Hour * 24
23+
appID = "app_idCzgxYerVD"
24+
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/"
25+
noUpdateOnWindowsMessage = "cloudflared will not automatically update on Windows systems."
26+
noUpdateManagedPackageMessage = "cloudflared will not automatically update if installed by a package manager."
27+
isManagedInstallFile = ".installedFromPackageManager"
2428
)
2529

2630
var (
@@ -98,6 +102,11 @@ func Update(_ *cli.Context) error {
98102
return errors.Wrap(err, "error setting up logger")
99103
}
100104

105+
if wasInstalledFromPackageManager() {
106+
logger.Error("cloudflared was installed by a package manager. Please update using the same method.")
107+
return nil
108+
}
109+
101110
updateOutcome := loggedUpdate(logger)
102111
if updateOutcome.Error != nil {
103112
return &statusErr{updateOutcome.Error}
@@ -217,13 +226,23 @@ func SupportAutoUpdate(logger logger.Service) bool {
217226
return false
218227
}
219228

229+
if wasInstalledFromPackageManager() {
230+
logger.Info(noUpdateManagedPackageMessage)
231+
return false
232+
}
233+
220234
if isRunningFromTerminal() {
221235
logger.Info(noUpdateInShellMessage)
222236
return false
223237
}
224238
return true
225239
}
226240

241+
func wasInstalledFromPackageManager() bool {
242+
ok, _ := config.FileExists(filepath.Join(config.DefaultUnixConfigLocation, isManagedInstallFile))
243+
return ok
244+
}
245+
227246
func isRunningFromTerminal() bool {
228247
return terminal.IsTerminal(int(os.Stdout.Fd()))
229248
}

postinst.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#!/bin/bash
22
set -eu
33
ln -s /usr/bin/cloudflared /usr/local/bin/cloudflared
4+
mkdir -p /usr/local/etc/cloudflared/
5+
touch /usr/local/etc/cloudflared/.installedFromPackageManager || true

postrm.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
#!/bin/bash
22
set -eu
33
rm /usr/local/bin/cloudflared
4+
rm /usr/local/etc/cloudflared/.installedFromPackageManager || true

0 commit comments

Comments
 (0)