🦔

MakefileでDartプラグインを作る

2024/03/28に公開

MakefileでDartプラグインを作る

Makefile

個人的にはMakefileが好きです、なぜかというと、コマンドを覚えるのが面倒だからです。(記憶力が低いとも言える)

なので全部覚えないといけないコマンドはMakefileで管理しています。

Makefileを作成する

.DEFAULT_GOAL := help
.PHONY: help
help:
	@echo "List of available make commands";
	@echo "";
	@grep -hE '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2}';
	@echo "";

これは頭につくフォーマットです、なんでこんなに長いのと思うかもしれませんが、これはかなり便利なものです、makemake helpを打てばどんなmakeコマンドが使えるのかを表示してくれます。

Dartプラグインを作成する

.PHONY: create_dart_library
create_dart_library: ## create dart library, like: make create_dart_library name=project_name
	if [ $(name) = null ] || [ $(name) =  ] || [ $(name) = "" ]; then \
		echo "\033[0;31mPlease provide a name for the project"; \
	else \
		chmod u+x scripts/create_project/clear_output_folder.sh; \
		./scripts/create_project/clear_output_folder.sh; \
		chmod u+x scripts/create_project/dart/dart/create_lib.sh; \
		./scripts/create_project/dart/dart/create_lib.sh $(name); \
	fi

のように作っています、気にすべきのはcreate_dart_libraryが2回出てくることです、これもフォーマットです。(覚えるのが苦手な方は毎回この記事を見れば大丈夫、無理して覚えなくていいです)

実際のコード

#!/bin/bash

set -eux

NAME="$1"

mkdir -p output
cd output

dart create -t package "$NAME"

cd "$NAME"

# copy xcode settings
template_path="scripts/create_project/dart/dart/template"
cp -r ../../$template_path/. .

# remove pubspec.yaml comments
sed '/^[[:blank:]]*#/d;s/#.*//' pubspec.yaml > no
rm -rf pubspec.yaml
mv no pubspec.yaml

まあ、全部のコードは貼っていないですが、興味ある方は自分のTemplateを作ってみてください。

おわりに

Makefileは便利です、使ってみてください。

Discussion