Android周りはすっかり隠居してる ので、このスクリプトに活発な更新は期待しないでください。気まぐれでなんか足すことはあります。
ccache の可否、ハッシュタグ設定、Pushbulletへの通知、保存先ディレクトリrepo sync 可否・ make clean 可否 を引数で指定log/success と log/fail に振り分けられますgit clone https://github.com/lindwurm/madoka.git -b main
/log以下と${HOME}/romは実行時に作成されます)
android の名前はスクリプトに関係しませんのでご自由にどうぞmadoka を置いてください$HOME/
|
|-- android/
|   |-- floko/
|   |-- lineage/
|   |-- log/
|   |   |-- fail/
|   |   `-- success/
|   `-- madoka/
|       |-- build.sh
|       |-- LICENSE
|       |-- README.md
|       `-- patch/        # FlokoROM v7 以降の場合、ここに https://github.com/FlokoROM/patch を clone してください
|         `-- floko.sh    # floko.sh は ~/android/floko を想定しています。そうでない場合は5行目あたりの build_home を弄ってください
`-- rom/  
    `-- ${device}/
実際の使い方は以下の通りです。
./build.sh [ROMのディレクトリ名] [ビルドターゲット] [オプション]
.env)ついに build.sh 触らなくてよくなりました。必要な設定を .env に記載することができます。
自身のホームディレクトリを示す場合、
~/よりも$HOMEを使用することを推奨します!
| env | 詳細 | 
|---|---|
ENABLE_CCACHE | 
ccache を利用して2回目以降のビルドを高速化します(ccache のインストールが必要です) | 
CCACHE_DIR | 
ccache の使用するキャッシュ先です。デフォルトは ~/ccache 以下にROMと同じ名前のディレクトリが生えます。 | 
TOOT_VISIBILITY | 
Mastodon に投稿する際の公開範囲です。デフォルトは unlisted (未収載) です。 private (フォロワー限定) も選べます | 
TOOT_HASHTAG | 
Mastodon に投稿する際のハッシュタグです。デフォルトは madokaBuild ですが、被らない名前をつけましょう。 | 
ENABLE_PUSHBULLET | 
Pushbullet のAPIを使用して自分の端末にプッシュ通知を送信します。デフォルトでは無効です。 | 
PUSHBULLET_TOKEN | 
アカウント登録後、 https://www.pushbullet.com/#settings/account で取得したトークンを入れてください。 | 
ENABLE_UPLOAD | 
ファイルをクラウドストレージにアップロードします。別途設定が必要です。デフォルトでは無効です。 | 
UPLOADER | 
アップロード用のコマンドを指定します。$device と $newzipname 変数が使えるのでいい感じにしてください。 | 
OUTPUT_PATH | 
ビルド後のファイル保存先を指定します。デフォルトは ${HOME}/rom です。 | 
すべてのオプションは同時に指定することができ、また繋げて指定することができます(後述)。
| option | 詳細 | 
|---|---|
-t | 
ビルド前後に toot によるトゥートをします。 | 
-s | 
repo sync を行います。デフォルトのジョブ数は全コアを使用するので気をつけてください。 | 
-c | 
make clean をビルド前に行います。 | 
-n | 
SELINUX_IGNORE_NEVERALLOWS を true にします。まだ開発途上であるなどの特別な事情がない限り、このオプションは非推奨です! | 
-d | 
ccache のキャッシュ済みデータを(統計情報も含めて)すべて削除します。 | 
例えば miatoll 向けの FlokoROM をトゥート有、repo sync有、make clean有でビルドする場合は
./build.sh floko miatoll -tsc
みたいな感じでよいです。
npm install -g toot とかで入ります。sudo apt install toot で入ります。channel_tag とか使うと自分の持ってるチャンネルに投げることとかもできます(なおpublicになります)
オプションで対応します。bash からの投げ方をそのまま .env にいい感じに書いといてください。
https://github.com/cghdev/cloud-dl を $HOME 直下に置いてる想定
ENABLE_UPLOAD=true
UPLOADER="${HOME}/cloud-dl -k path/to/${device}/ && ${HOME}/cloud-dl -u ${newzipname}.zip /path/to/${device}/"
https://github.com/andreafabrizi/Dropbox-Uploader を $HOME 直下に置いてる想定
ENABLE_UPLOAD=true
UPLOADER="${HOME}/dropbox_uploader.sh -p upload ${newzipname}.zip path/to/${device}/"
そんなことある?動作確認はしたほうがよくない?
SSH鍵を登録していることと、rsyncが入っているのが条件です
ENABLE_UPLOAD=true
UPLOADER="rsync -avP -e ssh ${newzipname} ユーザ名@frs.sourceforge.net:/home/frs/project/プロジェクト名/${device}/${newzipname}"
nextcloud ブランチのおまけです。自分が使っているだけなので完全に使い勝手が悪い。-x をつけてビルドするとNextcloudのアップロード先が変わります。単に $publishdir が変わってるだけです。.zip を退避
~/rom になっていますmake clean する運用も可能にmadoka は The MIT License の下で提供されます。一切の保証はありません。