NnmnLog

Rustでランダム文字列を生成するCLIツールを作った

作成: 2020-12-18
更新: 2020-12-18

Rustの勉強をかねて、ランダム文字列を生成する簡単なCLIツールを作ってみました。

なんかのサービスに登録するときのIDなど、適当でいいけど被ると登録できなかったりして面倒なことが多いので、そういうときに使いたいと思って作りました。

GitHubのリポジトリはこちらです。 –> nnnamani/gotcha

できること

以下のことができます。

  • 英数字・記号を使ったランダム文字列の生成
  • 使用する文字の種類を指定したランダム文字列の生成
  • 文字数を指定したランダム文字列の生成

インストール・アンインストール方法

READMEに書いてますが。

必要なもの

  • Rustのコンパイル環境
  • Cargo

インストール

コピペできるようにホームディレクトリ以下にリポジトリをcloneするように書いてますが、好きな場所に持って来てOKです。

cd ~/
git clone https://github.com/nnnamani/gotcha.git
cd gotcha
cargo install --path .

# 確認
gotcha -V

~/.cargo/bin/gotchaにインストールされるはずです。

アンインストール

cd ~/
cd gotcha
cargo uninstall

使い方

とりあえず、ランダムな文字列を作る

オプションなしで実行するとアルファベット(大文字/小文字)、数字、記号を含む10文字のランダム文字列が生成します。

$ gotcha
Qswu#=(6b<

文字列の文字数を指定する

-l--lengthオプションで指定できます。

$ gotcha -l 20
hqKN;K#5bby!n^wzmwxJ

$ gotcha -l 50
{P2yvtSt#s~r_F'-rgn!b/I63~A'aqqi>G#JofE68Xp7tXBiaR

$  gotcha --length 80
tv-;$<1MraJ;I|ZKc(]O+Dt=|5URY6Q'Ce=d53jqw^r%UyqyP1=8}WFu!^@cU0Q47M|$*.OpD+'Qo-Oq

使用する文字の種類を指定する

  • アルファベット(小文字だけ)
  $ gotcha -a
  wkqklomqdt

  $ gotcha --with-lowercase
  dfmiywgjha
  
  • アルファベット(大文字)と数字のみ
  $ gotcha -An
  AP5H42X1RU

  $ gotcha --with-uppercase --with-number
  TR79PYEICD
  
  • アルファベット(小文字)と記号のみで20文字
  $ gotcha -asl 20
  %y#~ei_-*ltfnw|au*]m
  

まとめ

Rustの勉強として簡単なCLIツールを作りました。

CLIツールを作る上で、オプションなどの解析はclapというクレートを使い、ランダム文字列の生成はrandというクレートを使っています。

clapを使うとヘルプ表示などは自動生成してくれるので、機能の実装に集中でき良い感じでした。