23
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

メッセージをお嬢様風にしてcommitしてくれるCLIツールを作った

Posted at

ojosama-commit

始めまして。しぐまと申します。
こんなツイートを見かけました。

何か作ってみたくなりました。

ということで
今回は、Rustという言語の勉強がてら、指定した文字列をお嬢様風にしてcommitしてくれるCLIツールを作りました。
とはいうものの実際にお嬢様風に変換する処理はjiro4989さまのojosamaというものを叩いているだけです。

GitHub

完成品のリンクです。
https://github.com/Sigumaa/ojosama-commit

予告なしに非公開にする可能性があります。

使い方

インストール

リポジトリをクローンして、次のコマンドを実行してください。

$ cargo install --path .

コミット

$ ojo "コミットメッセージです!"
[hoge huga000] コミットメッセージですわ~~!
 ∞ file changed, ∞ insertions(+)

作るうえで大変だったこと

今回の完成品はコード自体は短いのですが、Rustでこのようなツールを作るのは初めてだったということもありところどころ詰まる箇所がありました。

APIへのリクエストはreqwestを使っています。
https://docs.rs/reqwest/latest/reqwest/
返ってきたデータをHashMapにぶち込んでいじくっています。もっと良い方法があれば教えてください。

    let res_text: HashMap<String, String> =
        serde_json::from_str(&res).expect("かえってきたデータの処理に失敗してしまいましたわ。");

    let commit_message = res_text
        .get("Result")
        .expect("メッセージを取り出すのに失敗してしまいましたわ。");

外部コマンドの実行にはstd::process::Commandを使用しました。
https://doc.rust-lang.org/std/process/struct.Command.html

最後に

簡単なプロジェクトかもしれませんが、結構勉強になり楽しかったです。
これからもRustでいろいろ作ってみたいと思いました。

PRお待ちしてます!
よろしくお願いします!

23
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?