🦔
MakefileでDartプラグインを作る
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 "";
これは頭につくフォーマットです、なんでこんなに長いのと思うかもしれませんが、これはかなり便利なものです、make
かmake 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