From de898f7dd6a93ba4d0c95d8c21332a38ad538203 Mon Sep 17 00:00:00 2001 From: "Tomachi [ICHIGO]" Date: Wed, 13 Nov 2024 21:31:37 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E3=83=90=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E8=A1=A8=E7=A4=BA=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/splashscreen-changer/config.go | 2 +- cmd/splashscreen-changer/main.go | 20 ++++++++++--- cmd/splashscreen-changer/versioning.go | 41 ++++++++++++++++++++++++++ go.mod | 1 - go.sum | 3 +- 5 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 cmd/splashscreen-changer/versioning.go diff --git a/cmd/splashscreen-changer/config.go b/cmd/splashscreen-changer/config.go index 2812ec1..612d659 100644 --- a/cmd/splashscreen-changer/config.go +++ b/cmd/splashscreen-changer/config.go @@ -7,7 +7,7 @@ import ( "strconv" "strings" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) type Config struct { diff --git a/cmd/splashscreen-changer/main.go b/cmd/splashscreen-changer/main.go index 3592b9b..0400aab 100644 --- a/cmd/splashscreen-changer/main.go +++ b/cmd/splashscreen-changer/main.go @@ -129,9 +129,9 @@ func resizePNGFile(srcPath, destPath string, width, height int) error { func printHelp() { fmt.Println("Usage: splashscreen-changer [options]") fmt.Println("Options:") - fmt.Println(" --help, -h Show this help message") + flag.PrintDefaults() fmt.Println("Environment Variables:") - fmt.Println(" CONFIG_PATH Path to the configuration file (default: config.yaml)") + fmt.Printf(" %-20s %s\n", "CONFIG_PATH", "Path to the configuration file (default: config.yaml)") // Config 構造体のフィールドから環境変数のキーを生成して表示 configType := reflect.TypeOf(Config{}) @@ -146,20 +146,32 @@ func printHelp() { fmt.Printf(" %-20s %s\n", envKey, helpTag) } } + + fmt.Println() + fmt.Println("GitHub: https://github.com/tomacheese/splashscreen-changer") } func main() { // コマンドライン引数を解析する - helpFlag := flag.Bool("help", false, "Show help message") hFlag := flag.Bool("h", false, "Show help message") + vFlag := flag.Bool("v", false, "Show version") flag.Parse() // ヘルプメッセージを表示する - if *helpFlag || *hFlag { + if *hFlag { printHelp() return } + // バージョン情報を表示する + if *vFlag { + fmt.Println("splashscreen-changer") + fmt.Println("|- Version", GetAppVersion()) + fmt.Println("|- Commit:", GetAppCommit()) + fmt.Println("|- Build date:", GetAppDate()) + return + } + // 設定ファイルを読み込む。設定ファイルパスは環境変数 CONFIG_PATH で指定し、指定されていない場合は "config.yaml" とする。 configPath := os.Getenv("CONFIG_PATH") if configPath == "" { diff --git a/cmd/splashscreen-changer/versioning.go b/cmd/splashscreen-changer/versioning.go new file mode 100644 index 0000000..f258eab --- /dev/null +++ b/cmd/splashscreen-changer/versioning.go @@ -0,0 +1,41 @@ +package main + +import ( + "runtime/debug" +) + +var version string +var commit string +var date string + +func GetAppVersion() string { + if version != "" { + return version + } + + if buildInfo, ok := debug.ReadBuildInfo(); ok { + return buildInfo.Main.Version + } + + return "unknown" +} + +func GetAppCommit() string { + if commit != "" { + return commit + } + + if buildInfo, ok := debug.ReadBuildInfo(); ok { + return buildInfo.Main.Sum + } + + return "unknown" +} + +func GetAppDate() string { + if date != "" { + return date + } + + return "unknown" +} diff --git a/go.mod b/go.mod index 4807e07..feb0e35 100644 --- a/go.mod +++ b/go.mod @@ -6,5 +6,4 @@ require ( golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/image v0.22.0 gopkg.in/yaml.v3 v3.0.1 - gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index e9c302b..7378fac 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,5 @@ golang.org/x/image v0.22.0 h1:UtK5yLUzilVrkjMAZAZ34DXGpASN8i8pj8g+O+yd10g= golang.org/x/image v0.22.0/go.mod h1:9hPFhljd4zZ1GNSIZJ49sqbp45GKK9t6w+iXvGqZUz4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From a48fd3cac0245891b9ae3e45452255565e5f4d0f Mon Sep 17 00:00:00 2001 From: Tomachi <8929706+book000@users.noreply.github.com> Date: Thu, 14 Nov 2024 00:43:19 +0900 Subject: [PATCH 2/4] Update cmd/splashscreen-changer/versioning.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cmd/splashscreen-changer/versioning.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/splashscreen-changer/versioning.go b/cmd/splashscreen-changer/versioning.go index f258eab..8035067 100644 --- a/cmd/splashscreen-changer/versioning.go +++ b/cmd/splashscreen-changer/versioning.go @@ -26,7 +26,7 @@ func GetAppCommit() string { } if buildInfo, ok := debug.ReadBuildInfo(); ok { - return buildInfo.Main.Sum + for _, setting := range buildInfo.Settings { if setting.Key == "vcs.revision" { return setting.Value } } } return "unknown" From f743f2b032f2bab4bf8fbb41cb1778c3c93d057c Mon Sep 17 00:00:00 2001 From: "Tomachi [ICHIGO]" Date: Thu, 14 Nov 2024 00:46:10 +0900 Subject: [PATCH 3/4] ci: fix ref --- .github/workflows/build-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 9b4f801..b68d29b 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -29,6 +29,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 + ref: ${{ github.event.pull_request.merged == true && github.base_ref || github.event.pull_request.head.sha }} - name: 🏷️ Bump version and push tag id: tag-version From 5a4fbf1431c5f029e5c6cd3cf50fd9df2c60f576 Mon Sep 17 00:00:00 2001 From: "Tomachi [ICHIGO]" Date: Thu, 14 Nov 2024 01:00:57 +0900 Subject: [PATCH 4/4] fix: remove commit sha --- cmd/splashscreen-changer/main.go | 10 ++++++++-- cmd/splashscreen-changer/versioning.go | 13 ------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/cmd/splashscreen-changer/main.go b/cmd/splashscreen-changer/main.go index 0400aab..a2f7771 100644 --- a/cmd/splashscreen-changer/main.go +++ b/cmd/splashscreen-changer/main.go @@ -86,9 +86,16 @@ func cropToAspectRatio(img image.Image, width, height int) image.Image { cropRect = image.Rect(0, y0, srcWidth, y0+newHeight) } - return img.(interface { + // 指定された範囲を切り取る + croppedImg := img.(interface { SubImage(r image.Rectangle) image.Image }).SubImage(cropRect) + + // 切り取った画像を指定のサイズにリサイズ + dst := image.NewRGBA(image.Rect(0, 0, width, height)) + draw.Draw(dst, dst.Bounds(), croppedImg, croppedImg.Bounds().Min, draw.Src) + + return dst } // PNGファイルをリサイズする関数 @@ -167,7 +174,6 @@ func main() { if *vFlag { fmt.Println("splashscreen-changer") fmt.Println("|- Version", GetAppVersion()) - fmt.Println("|- Commit:", GetAppCommit()) fmt.Println("|- Build date:", GetAppDate()) return } diff --git a/cmd/splashscreen-changer/versioning.go b/cmd/splashscreen-changer/versioning.go index 8035067..b519a0d 100644 --- a/cmd/splashscreen-changer/versioning.go +++ b/cmd/splashscreen-changer/versioning.go @@ -5,7 +5,6 @@ import ( ) var version string -var commit string var date string func GetAppVersion() string { @@ -20,18 +19,6 @@ func GetAppVersion() string { return "unknown" } -func GetAppCommit() string { - if commit != "" { - return commit - } - - if buildInfo, ok := debug.ReadBuildInfo(); ok { - for _, setting := range buildInfo.Settings { if setting.Key == "vcs.revision" { return setting.Value } } - } - - return "unknown" -} - func GetAppDate() string { if date != "" { return date