FlutterプロジェクトのGit情報をプログラム上で表示する方法
アプリ開発などでこのプログラムはいつ作製したものだろう?同じバージョンはどれ?といった問題に直面したのでアプリ上にGIT情報としてコミット日時、編集の有無、ブランチ、コミットIDを表示させるようにしました。
ハードではこちらの記事で運用をしていてFlutter環境でも応用してみました。
https://asukiaaa.blogspot.com/2023/01/add-git-info-to-platformio-project.html
前提条件
- VSCode
- Flutterプロジェクト
- Gitがインストールされていること
スクリプトの作成
まず、プロジェクトのルートに get_git_info.ps1
というPowerShellスクリプトを作成します。
#!/bin/bash
# 最新のコミット日時を取得
$commit_date = git log -1 --pretty=%cd --date=format:%Y-%m-%d-%H:%M
# コミットIDを取得
$commit_id = git rev-parse --short HEAD
# 未コミットの変更があるか確認
$diff_status = if ((git status --porcelain) -eq $null) { "no-diff" } else { "modified" }
# 現在のブランチ名を取得
$branch_name = git rev-parse --abbrev-ref HEAD
# 情報を結合
$git_info = "$commit_date-$diff_status-$branch_name-$commit_id"
# Dartファイルに情報を書き込む
"const String gitInfo = '$git_info';" | Out-File -Encoding utf8 lib/git_info.dart
スクリプトの実行
次に、PowerShellを管理者として実行し、以下のコマンドを入力してスクリプトの実行ポリシーを変更します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
その後、以下のコマンドでスクリプトを実行します。
.\get_git_info.ps1
これにより、lib/git_info.dart
ファイルが生成され、Gitの情報が含まれます。
Dartコード内での使用
生成された lib/git_info.dart
ファイルをFlutterコード内でインポートして使用します。
import 'package:your_project/git_info.dart';
void main() {
print('Git Info: $gitInfo');
}
アプリ上で表示したり管理者ページで確認するようにすることで保守の向上が期待できます。