やってみる

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

GitHubアップローダのアカウント登録CUI起動シーケンスを考えてみた

実装に向けて。

前回まで

8/9、追加機能について考えていた。今回はこのうちの一部である。

http://ytyaru.hatenablog.com/entry/2017/08/09/000000

9/30、初期処理としてアカウント登録時のイメージを考えた。

http://ytyaru.hatenablog.com/entry/2017/09/30/000000

10/9、アカウント登録が未実装のため、バグ発生。

http://ytyaru.hatenablog.com/entry/2017/10/09/000000

  1. GitHubUploader.pyにアカウント管理機能を付与する
  2. GitHub総合操作.pyにGitHubUploader.pyとアカウント管理機能を付与する
  3. GitHubUploader.pyとアカウント管理機能を別々のスクリプトにする

Cだとコマンドを複数覚えたりパスを通したりせねばならず面倒そう。作るのは一番楽。結合しなくていいから。

Bだとコマンドが抽象的すぎてわかりにくくなりそう。実際はほぼアップロード機能しかないくせに。

Aは階層的に間違っている。Bが正しい。でも実際の用途に合っている。

とりあえずAを採用。

シーケンス

引数なし

以下のコマンドでGitHubアップローダを実行する。

python3 GitHubUploader.py
python3 GitHubUploader.py -h

以下のようなヘルプを表示する。

アップローダ  : $ GitHubUploader.py `pwd` -u username -d description -l homepage
アカウント管理: $ GitHubUploader.py account -u username -d description -l homepage -s ssh_public_key_file_path

アップローダがメインコマンドで、アカウント管理がサブコマンド。

アップロード コマンド

ユーザ名なし

以下のコマンドでGitHubアップローダを実行する。

python3 GitHubUploader.py `pwd`
  1. マスターDBを作成する
    • アカウントDBない
      • アカウント登録用TSVがない
        • アカウント作成CUIを実行する
    • アカウントDBある
      • config.iniGitHub.Userをデフォルトユーザとする(ファイルない、セクションない、キーない、の各エラー)
        • ユーザ名がDBに存在しない
          • エラーまたはDBにあるユーザ選択CUI
        • ユーザ名がDBに存在する

アカウント登録CUIが完成すれば、「DBにあるアカウントは有効なものである」ことになるため、ユーザ選択CUIも作れそう。有効なアカウントとは、GitHubAPIが発行でき、SSH通信できるアカウントのこと。

ユーザ名あり

python3 GitHubUploader.py `pwd` -u some_username
  1. マスターDBを作成する
    • アカウントDBない
      • アカウント登録用TSVがない
        • アカウント作成CUIを実行する
    • アカウントDBある
      • config.iniGitHub.Userを無視しsome_usernameをデフォルトユーザとする
        • ユーザ名がDBに存在しない
          • エラーまたはDBにあるユーザ選択CUI
        • ユーザ名がDBに存在する

アカウント作成 サブコマンド

以下のコマンドでアカウント作成CUIを実行する

python3 GitHubUploader.py account
python3 GitHubUploader.py account -u username -p password -m mailaddress -s ssh_public_key_file_path

新たにアカウントを追加する場合、必ずこのコマンドが必要になる。というイメージ。

所感

次は実装時のファイル構成やPythonのインタフェースを考える。