RustでCLIを作る の続き
Rust勉強がてらCLIで操作できるようにしてみる
APIの使い方
ユーザー・グループの取得
追加・更新
ユーザーのUUIDやグループのslugは、permission設定ずみのリポジトリから取得するのが楽かな?そのため一つのリポジトリはGUIから設定して、2つ目以降はCLIでできる感じ
削除
設計
user, user-a, {aaaaaaaa-7898-45d3-869f-dd6ddf7efc10}, write
user, user-b, {aaaaaaaa-7898-45d3-869f-dd6ddf7efc11}, read
group, group-1, 2022_abcdef12, write
みたいなCSVを食わせてこれのとおりに上書きする
PJごとに、持っているリポジトリにはすべて同じ設定ができれば満足だと思うので
列挙されていないものは削除までするか?一旦考えなくていいか
CSVを作るためには一回は手動で設定をしてAPIで取得する必要がある
CSVとかじゃなくても、このリポジトリと同じ設定を適用するというのでもいいんじゃないか
まずは取得するAPIを作って、JSONを操作する方法を調べて特定のキーを抽出する
copy
bb copy <src> <repo>
srcと同じ権限にする
list
一覧
bb list <repo>
remove
bb remove -u/-g <uuid> <repo>
idをオプションで指定してもいいけど、listしたあと選択式で削除できると便利
update
bb update -u/-g <uuid> <repo>
login
毎回authオプションつけるのなんだしパスワードがでるのあれなので、
https://github.com/craftamap/bb を参考に、loginコマンドで ~/.bb.toml
を作ってusername, passwordを保存する的な
Macでの動作しか確認できんけどkeychainに入れるとか