成果物
GitHub.Upload.ByPython.EditRepo.201703101422
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
- Python 3.4.3
前回まで
http://ytyaru.hatenablog.com/entry/2017/07/28/000000
http://ytyaru.hatenablog.com/entry/2017/07/29/000000
課題1
今回の編集機能をつかって説明文やHomepageを編集してしまうと、call.sh
の内容と整合性がとれなくなってしまう。
案
call.sh
のほかに、up.ini
のファイルを作成する。
up.ini
[Repository] username=ytyaru description=説明文。 homepage=http://abc
編集後は、このiniファイルも編集する。
問題
しかし、余計なファイルIOを強いることになる。DBにデータが存在するのだから、DBデータを使って表示できればいいはず。
リポジトリを新規作成するときにCUI対話で入力させる案もある。
対策
AはファイルIOが生じてしまう。データ自体はDBにあるはずなのでiniファイル操作は無駄に思える。iniファイルとの整合性は犠牲にしてもいいのでは?
BならAの問題が解決する。ただ、初回アップロードするときにCUI入力の手間が生じる。それが面倒だからファイルに書く形式にしたのに。
Cが最善か。DBにまだ値がないときはcall.sh
の値を表示する。DBに値があるときはDB値を表示する。call.sh
の値は更新しないので整合性はとれない。call.sh
の引数は「初回のみCUI対話回避のための入力用データ」ということにして妥協するか。
DはBとCの合体版。もしcall.sh
に説明文とHomepageの引数がない状態で実行され、かつリポジトリ未作成のときは、CUI対話で入力させる。過剰な対応かもしれない。
課題2
所感
思ったより面倒なことになってきた。