@@ -5,75 +5,81 @@ import (
55 "os"
66 "runtime/debug"
77
8- "github.com/joho/godotenv"
9-
108 "github.com/blang/semver"
9+ "github.com/joho/godotenv"
1110 "github.com/rhysd/go-github-selfupdate/selfupdate"
1211)
1312
14- var version string
13+ // appVersion はビルド時に埋め込まれるバージョン情報である
14+ var appVersion string
1515
16+ const (
17+ githubRepo = "Rione/ssl-RACOON-Pi2"
18+ )
19+
20+ // getVersion は現在のアプリケーションバージョンを取得する
1621func getVersion () string {
17- if version != "" {
18- // バージョン情報が埋め込まれている時
19- return version
22+ if appVersion != "" {
23+ return appVersion
2024 }
21- i , ok := debug . ReadBuildInfo ()
22- log . Println ( debug .ReadBuildInfo () )
25+
26+ buildInfo , ok := debug .ReadBuildInfo ()
2327 if ! ok {
2428 return "unknown"
2529 }
26- log .Println (i .Main .Version )
27- return i .Main .Version
30+
31+ log .Println ("Build version:" , buildInfo .Main .Version )
32+ return buildInfo .Main .Version
2833}
2934
35+ // confirmAndSelfUpdate はGitHubから最新版を確認し、必要に応じて自動更新を行う
3036func confirmAndSelfUpdate () {
31- var version = getVersion ()
32- log .Println ("Current version:" , version )
37+ currentVersion : = getVersion ()
38+ log .Println ("Current version:" , currentVersion )
3339
34- if version == "(devel)" || version == "unknown" {
35- log .Println ("NO VERSION INFO(DEV VERSION)" )
40+ if currentVersion == "(devel)" || currentVersion == "unknown" {
41+ log .Println ("NO VERSION INFO (DEV VERSION)" )
3642 return
3743 }
3844
39- // selfupdate.EnableLog()
40- // .envファイルを読み込む
41- err := godotenv .Load ()
42- if err != nil {
43- log .Println ("Error loading .env file" )
45+ // .envファイルからGitHubトークンを読み込む
46+ if err := godotenv .Load (); err != nil {
47+ log .Println ("Error loading .env file:" , err )
4448 return
4549 }
46- up , err := selfupdate .NewUpdater (selfupdate.Config {
50+
51+ updater , err := selfupdate .NewUpdater (selfupdate.Config {
4752 APIToken : os .Getenv ("GITHUB_TOKEN" ),
4853 })
4954 if err != nil {
5055 log .Println ("Error occurred while creating the updater:" , err )
5156 return
5257 }
5358
54- latest , found , err := up .DetectLatest ("Rione/ssl-RACOON-Pi2" )
59+ latest , found , err := updater .DetectLatest (githubRepo )
5560 if err != nil {
5661 log .Println ("Error occurred while detecting version:" , err )
5762 return
5863 }
64+
5965 if ! found {
6066 log .Println ("No releases found" )
6167 return
6268 }
6369
64- v := semver .MustParse (version )
65- if ! found || latest .Version .Equals (v ) || ! latest .Version .GT (v ) {
70+ currentSemVer := semver .MustParse (currentVersion )
71+ if latest .Version .Equals (currentSemVer ) || ! latest .Version .GT (currentSemVer ) {
6672 log .Println ("Current version is the latest" )
6773 return
6874 }
75+
6976 log .Println ("New version available:" , latest .Version )
7077
71- latest , err = up .UpdateSelf (v , "Rione/ssl-RACOON-Pi2" )
72- if err != nil {
78+ if _ , err = updater .UpdateSelf (currentSemVer , githubRepo ); err != nil {
7379 log .Println ("Error occurred while updating binary:" , err )
7480 return
7581 }
76- log .Println ("Successfully updated to version" , latest .Version )
7782
83+ log .Println ("Successfully updated to version" , latest .Version )
7884 os .Exit (1 )
7985}
0 commit comments