シン・TWSNMPへの道:go-taskを実戦で使ってみた
今朝は3時に一度目が覚めましたが、二度寝して5時から開発開始です。
何日か前に練習したgo-task
を実際のプロジェクトに使ってみました。
資料を読んだりサンプルを少し動かしただけで理解したつもりになると後で大変な目にあうので小さなプロジェクトで使ってみるのが良いと思っています。
使ってみるのは、昨日Rollup.jsからViteに変更したTWSNMP FCの起動プログラムです。
ビルドはMakefileで行っていましたが、これをgo-taskに移植してみました。
元のMakefileは
.PHONY: all clean windows mac windebug wininstaller dev
### バージョンの定義
VERSION := "v1.24.0"
COMMIT := $(shell git rev-parse --short HEAD)
### コマンドの定義
LDFLAGS = "-s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT)"
### PHONY ターゲットのビルドルール
all: windows mac
clean:
rm -rf build/bin/twLauncher*
rm -rf build/bin/*.exe
windows: build/bin/twLauncher.exe
mac: build/bin/twLauncher.app/Contents/MacOS/twLauncher
build/bin/twLauncher.app/Contents/MacOS/twLauncher:
wails build -platform darwin -ldflags $(LDFLAGS)
windebug:
wails build -platform windows -debug -clean
dev:
wails dev -e go,svelte
build/bin/twLauncher.exe:
wails build -platform windows/amd64 -ldflags $(LDFLAGS)
をTaskfile.yamlにすると
version: '3'
vars:
VERSION: v1.24.0
COMMIT:
sh: git rev-parse --short HEAD
tasks:
default:
cmds:
- task: mac
- task: windows
dev:
cmds:
- wails dev
mac:
cmds:
- wails build -platform darwin/universal -clean -ldflags "-s -w -X main.version={{.VERSION}} -X main.commit={{.COMMIT}}"
windows:
cmds:
- wails build -platform windows/amd64 -clean -ldflags "-s -w -X main.version={{.VERSION}} -X main.commit={{.COMMIT}}"
windebug:
cmds:
- wails build -platform windows/amd64 -debug -clean
clean:
cmds:
- rm -rf build/bin/twLauncher*
- rm -rf build/bin/*.exe
です。
というコマンドだけでWindows版とMac版がビルドできます。
ちょっと面白かったのは、最初
tasks:
default:
deps: [windows,mac]
というように書いていたらビルドがエラーになりました。
makeと違ってtaskは並列処理でwindowsとmacの両方を同時にビルドすることが原因でした。順番に実行するように
tasks:
default:
cmds:
- task: mac
- task: windows
にしました。
今日からゴールデンウィークです。wails v3はまだ実用的にならないようなので、このままTWSNMP FCの起動プログラムの改善を続けようと思います。
次は、
を使って画面を書き直すつもりです。
以前、複数のTWSNMP FCを起動できるようにして、ほしいという要望がありました。この要望にも対応したいと思っています。
明日に続く
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。