本記事は2023/04/21時点の内容です。
最新情報はa-Shellの公式情報を確認してください。
経緯
- iPhone/iPadでPythonコードはa-Shellアプリを使用することで実行できますが、コードによってはPyPIに登録されてないケースがあるため、その場合はGitHubからzipをDLして使用していました。(a-Shellアプリはデフォルトではgitコマンドは使用できず、aptコマンドも使用できないため。)
- しかし、GitHubからzipをDLする場合はバージョン確認が必要になります。また、そもそも移動が手間でした。そこで、gitを使える方法がないか調べたところ、a-Shell-commandsからgitコマンドを追加できることがわかりました。
- 本記事ではgitコマンドの追加方法と使い方について実例を基に紹介します。
手順
- 本記事ではcurlコマンドで取得する方法を紹介します。コマンドの追加方法についてはa-Shell公式のpurposeを確認ください。
- 以下のコマンドをa-Shellアプリを起動して実行してください。gitコマンドを実行するシェルスクリプト(git)をa-ShellのbinフォルダにDLします。
mkdir ~/Documents/bin #binフォルダを作成済みの場合は不要 cd ~/Documents/bin curl -L https://github.com/holzschu/a-Shell-commands/releases/download/0.1/git -o ~/Documents/bin/git
- リンクが無効な場合はa-Shell-commandsにアクセスし、「Releases 1」> 「Show all 61 assets」> 「git」からURLをコピーして置き換えてください。
- リンクが有効な場合はファイルを選択するとDLのポップアップが表示されるため手動でDL&ファイル移動することも可能です。
DLしたgitコマンドファイル(シェルスクリプト)について
- gitコマンドファイルの中身を確認すると以下コードになっており、内部でlg2というシェルスクリプトを呼び出していました。
% cat git #!/bin/sh lg2 "$@"
- twitterを見るとlibgit2ベースのlg2を追加しており、内部ではlibgit2のver1.1.0を使用してgit commandを実行していました。
- a-Shellが公式のlibgit2を使用しているかまでは未確認ですが、2023/04/21時点ではlibgit2のlatestはver1.6.4でした。
New version of a-Shell and a-Shell mini available on the AppStore (1.7.3).
— a-Shell (@a_Shell_iOS) June 30, 2021
What’s new?
* lg2, a git-like clone based on libgit2.
* tons of UI improvements: sliding your finger moves the cursor or scrolls the screen.
* vim and less now use the alternate screen.
- 使用できるコマンドは下記の通りです。
$ git help usage: lg2 <cmd>... Available commands: add apply rm blame branch cat-file checkout clone commit config describe diff fetch for-each-ref index-pack init log ls-files ls-remote merge push pull rebase remote reset rev-list rev-parse show-index self-test stash status submodule tag version help
まとめ
- a-Shellアプリでgitコマンドを使用する方法を紹介しました。
- 今回はgitコマンドファイルについて紹介しましたが、他にもシェルスクリプトとwasmファイルが格納されているので必要に応じて追加すると良いかと思います。
- ffmpeg.wasm, tree.wasm, whichもDLしましたが、問題なく使用できました。(※DL後はアプリの再起動が必要です。)
- wasmファイルについては同様にbinフォルダに追加すると実行時にWebAssembly JIT (Just-in-Time) コンパイラでブラウザで実行可能な形式にコンパイルされるようです。(この辺りは詳しくないので理解を深めたいところです。)
- a-Shell公式はコンパイル済みのコマンドがあればプルリクエストを出すことで追加することもできるようです。(要承認確認)
以上です。