Madoka

マジメインヒロイン

madoka

機能

  • 対話型ではないので一度実行すれば終了まで操作不要
  • 実行時オプション: ROM(ディレクトリ)・ビルドターゲット・ツイート可否・ repo sync 可否・ make clean 可否・プライベートビルドの可否 を引数で指定
  • ログの保存、ビルド成否による保存先の振り分け
    • log/successlog/fail に振り分けられます
  • 複数種類のカスタムROMに対応可能
    • とりあえずLineageOS(CyanogenMod)とAndroid Ice Cold Projectのフォーマットに対応しています
    • バージョン上がってもだいたい取れるようにはしてます
  • ビルド開始・終了時のSNS投稿機能(Twitter/Mastodon/Pushbullet)
  • クラウドストレージへのアップロード
  • 成果物の移動

用法

git clone https://github.com/lindwurm/madoka.git -b nextcloud
  • ディレクトリ構造の例は以下(/log以下と~/romは実行時に作成されます)
    • ~/build の名前はスクリプトに関係しませんのでご自由にどうぞ
    • 要するにROMのソース置いたディレクトリと同じ階層にmadokaを置いてください
~/
|
|-- build/
|   |-- aicp/
|   |-- du/
|   |-- lineage/
|   |-- log/
|   |   |-- fail/
|   |   `-- success/
|   `-- madoka/
|       |-- build.sh
|       |-- LICENSE
|       `-- README.md
|-- oysttyer/
|   `-- oysttyer.pl
|-- rom/  
|   `-- ${device}/
`-- ./cloud-dl

実際の使い方は以下の通りです。

./build.sh [ROMのディレクトリ名] [ビルドターゲット] [オプション]

オプション一覧

option 詳細
-t oysttyerを用いてツイートします。事前にアカウント設定をoysttyerで行ってください。
-s repo sync を行います。デフォルトのジョブ数は8なので適宜スクリプト本体いじって加減してください。
-c make clean をビルド前に行います。
-x プライベートビルドモードを有効にします。詳しくは後述。

例えば hammerhead 向けのAICPをツイート有、repo sync有、make clean有でビルドする場合は

./build.sh aicp hammerhead -t -s -c

です。

SNS連携

Twitter (開始/終了時)

  • oysttyer に丸投げしています。別途セットアップは済ませておいてください
  • デフォルトのハッシュタグは #madokaBuild ですが、各自で使う際はハッシュタグを変えといてください
    • 冒頭の $TWEET_TAG の値を適当に

プッシュ通知 (終了時)

  • Pushbullet APIを使用しています
    • アクセストークンの発行が必要です
    • デフォルトでは自分から自分へのメッセージ扱いになるんですが、Channel作って channel_tag とか使うと自分の持ってるチャンネルに投げることとかもできます(なおpublicになります)

Mastodon対応

  • npm install -g toot とかで glynnbird/toot を入れているとトゥートできます。

クラウドストレージへのアップロード

Nextcloud へのアップロード

  • nextcloud ブランチを使用してください
  • https://github.com/cghdev/cloud-dl を使用します。セットアップが必要です
  • 今のところ一番シンプルかつ問題が少ないので良いです
現在はサポートされていないバージョン(畳まれています)

Google Drive へのアップロード(outdated)

  • gdrive ブランチを使用してください
  • https://github.com/prasmussen/gdrive を使用します。セットアップが必要です
  • 他にもフォルダIDの取得・スクリプト内への記入が必要です(めんどい)。
    • build.sh 本体に必要な説明は書いたので読んでください。
    • 手元で対応機種増やすたびにアップロード先のフォルダID書いていくのだるくなってdrop

MEGA へのアップロード(outdated)

プライベートビルドモード

  • nextcloud ブランチのおまけです。自分が使っているだけなので完全に使い勝手が悪い。
  • -x をつけてビルドするとNextcloudのアップロード先が変わります。単に $publishdir が変わってるだけです。
  • 普段は共有リンクが発行されている事実上の公開フォルダにアップロードされるようにしているけど、テスト用のビルドとかであんまり多数向けに配れるものじゃないやつを作るときに使っています。
    • 他人向けのビルドをしていない、そもそもnextcloudを使っていないという人は存在自体を忘れてても問題ないです。

ファイル移動

  • ビルド完了後に別ディレクトリへROMの .zip を退避
    • デフォルトでは ~/rom になっています
    • 連続で複数機種ビルドする際に毎回 make clean する運用も可能に
  • ついでに同日複数のビルドに対応できるようにファイル名にビルド時刻を差し込んでいます

Contribution

Issue

  • 開放しています。
  • こういう機能が欲しいとか書いてもらえると追加したり追加できなかったりします。
  • 日本語可。

Pull Request

  • 機能追加や修正は随時受け付けています。
  • 私の手元で確認した後でmergeするつもりです。
  • コミットメッセージとコメントは日本語で構いません。
    • というかどういう変更なのかちゃんと書いてください…

Donation

  • こんなんに寄付とか正気か?
  • https://maud.io/ にほしい物リストみたいなリンクはあったと思います

LICENSE

madoka は The MIT License の下で提供されます。一切の保証はありません。

Contacts

lindwurm