やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

GitHubリポジトリ操作のインタフェースを考えてみた

前回のつづき。実行時の操作方法。

インタフェース

コマンド 概要
git_up.exe リポジトリの新規作成,commit,pushを行う。
git_get.exe リポジトリの取得と集計を行う。

実行形式

git_up.pyでもいいが、python git_up.py (パラメータ)のように実行コマンドが長くなってしまう。現状、WindowsXPではC:/python34/python git_up.py (パラメータ)になってしまう。そこで、pythonをexeに変換してコマンド化したい。できるかどうか未知。

しかし、Windowsのcmd.exeには文字コード問題がある。commitメッセージ、リポジトリの説明文、issueで日本語が使えない。.pyファイルにてUTF-8で渡せばcommitメッセージ以外は解決できるはず。

LinuxMint17.3ではpython3 git_up.py (パラメータ)とすれば実行できた。Linuxの場合は.pyのままでも我慢できるか。面倒ならエイリアス定義するなどの工夫もできる。

git_up.exe

新しくリポジトリを作成したいときに使うコマンド。

リポジトリ対象となるディレクトリを渡す。

git_up.exe %dp~0

%dp~0はバッチファイルでのみ使える。コンソール上でコマンドを打っても使えない。コンソールからサクっと使いたかったのだが、難しそう。

実行内容は前回のフローチャートのとおり。CUIで入力していけばリポジトリ作成、commit、pushできる。

ユーザ選択の省略

前回のフローチャートのうち、ユーザ選択を省略できる。

git_up.exe -u {GitHubユーザ名} %dp~0

メッセージ入力受付の省略

前回のフローチャートのうち、コミットメッセージ入力受付を省略して直接commit,pushする。

git_up.exe -m {commitメッセージ} %dp~0

初回以降はこの形式を主に使うと思われる。

初回時にいろいろ省略

初回なら、以下のようにするとユーザ選択もメッセージ入力受付も省略してgit init, commit, push, リモートリポジトリ作成できる。

git_up.exe -u {GitHubユーザ名} -m {commitメッセージ} %dp~0

リモートリポジトリに説明とURLを設定したいなら、以下のようにする。

git_up.exe -u {GitHubユーザ名} -m {commitメッセージ} -d {リポジトリ説明} -h {URL} %dp~0

上記のコマンドを打てば、CUIで入力待ちせず実行される。思った以上に引数が多かった。これだと結局、バッチファイルに記録することになりそう。

リモートリポジトリの補足情報

リモートリポジトリの説明とURLは以下のように設定する。

git_up.exe -u {GitHubユーザ名} --description {リポジトリ説明} --homepage {URL} %dp~0
git_up.exe -u {GitHubユーザ名} -d {リポジトリ説明} -h {URL} %dp~0

サブコマンド

以下のようにサブコマンドを実行する。

git_up.exe --command edit -u {GitHubユーザ名} -d {リポジトリ説明} -h {URL} %dp~0
git_up.exe -c edit -d {リポジトリ説明} -h {URL} %dp~0
git_up.exe -c delete %dp~0

issueコマンド

issueの作成は内容に改行コードを含めるだろうから難しそう。どうしよう。

git_up.exe -c issue title containts %dp~0
git_up.exe -c issue-all %dp~0
git_up.exe -c issue-closed %dp~0
git_up.exe -c issue-open %dp~0

予想

meta_up.batのようなファイルを作成し、以下のように上から順にコマンド実行履歴が蓄積していく形になると思われる。

:: git_up.exe -u {GitHubユーザ名} -m {commitメッセージ} -d {リポジトリ説明} -h {URL} %dp~0
:: git_up.exe -m "init commit." %dp~0
:: git_up.exe -m "2nd commit." %dp~0
:: git_up.exe -m "3rd commit." %dp~0
:: git_up.exe -m "4th commit." %dp~0
:: git_up.exe -c issue "問題1" "こんな問題がある。" %dp~0
git_up.exe -m "fixed #1" %dp~0

git_get.exe

既存のリポジトリ情報をローカルDBから取得し閲覧するコマンド。

git_get.exe
項目 説明
集計 CUIに簡単な集計結果を表示する
リポジトリ一覧 HTMLに簡単なリポジトリ一覧を出力する

出力したいときは以下のようにするか。あまり具体的には考えていない。

git_get.exe -o html
git_get.exe -o md
git_get.exe -o txt
git_get.exe -o clipboard

ブログを自動更新できたらいいな。

git_get.exe --upload htt://

git_output.exeのほうが内容に近い名前かも。

所感

なんとなくイメージできてきた。