@@ -11,8 +11,16 @@ import (
11
11
12
12
const repoSlug = "kldzj/pzmod"
13
13
14
- func GetLatestRelease () (* selfupdate.Release , error ) {
15
- latest , found , err := selfupdate .DetectLatest (context .Background (), selfupdate .ParseSlug (repoSlug ))
14
+ func NewUpdater () (* selfupdate.Updater , error ) {
15
+ return selfupdate .NewUpdater (selfupdate.Config {
16
+ Validator : & selfupdate.ChecksumValidator {
17
+ UniqueFilename : "checksums.txt" ,
18
+ },
19
+ })
20
+ }
21
+
22
+ func GetLatestRelease (updater * selfupdate.Updater ) (* selfupdate.Release , error ) {
23
+ latest , found , err := updater .DetectLatest (context .Background (), selfupdate .ParseSlug (repoSlug ))
16
24
if err != nil {
17
25
return nil , fmt .Errorf ("error occurred while fetching release: %w" , err )
18
26
}
@@ -28,7 +36,7 @@ func IsLatest(current string, latest *selfupdate.Release) bool {
28
36
return latest != nil && latest .LessOrEqual (current )
29
37
}
30
38
31
- func Update (current string , latest * selfupdate.Release ) error {
39
+ func Update (current string , latest * selfupdate.Release , updater * selfupdate. Updater ) error {
32
40
if IsLatest (current , latest ) {
33
41
fmt .Printf ("Current version %s is the latest" , current )
34
42
return nil
@@ -39,7 +47,7 @@ func Update(current string, latest *selfupdate.Release) error {
39
47
return errors .New ("could not locate executable path" )
40
48
}
41
49
42
- if err := selfupdate .UpdateTo (context .Background (), latest . AssetURL , latest . AssetName , exe ); err != nil {
50
+ if err := updater .UpdateTo (context .Background (), latest , exe ); err != nil {
43
51
return fmt .Errorf ("error occurred while updating binary: %w" , err )
44
52
}
45
53
0 commit comments