見出し画像

シン・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

 です。

task

というコマンドだけで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の運営にも貢献できるのでよろしくお願います。