LoginSignup
7
1

More than 5 years have passed since last update.

Ruby で Cargo を拡張する

Posted at

この記事は,分かっている人にとってはタイトルを見ただけで「ああ,あの話だろうな,アホくさ」ってなるし,そうでない方は「えっ?」って思うかもしれないけど,記事を読み終わったら「アホくさ」ってなります。

さてさて,今をときめくシステムプログラミング言語にして,WebAssembly 記述言語たる Rust ですが,cargo コマンドが便利ですよね。
こいつはサブコマンドをあとから増やすことができます。自分でサブコマンドを作ることも容易にできます。そういうことを「Cargo を拡張する」と表現するようです。

Ruby で Cargo のサブコマンド

Rubyist なら,Rust のプログラミングでだって,ソースコードをなんかテキスト処理したり,プロジェクトディレクトリーでなんか処理を行うプログラムを Ruby で書きたいよね?

できます。

どこでもいいので,とにかくパスが通った場所にこんなファイルを置きます。ファイル名に注目。

cargo-hello
#!/usr/bin/env ruby

puts "Hello, Rust. I am Ruby."

でもって,実行パーミッションを付与しておきます。
要するに cargo-hello ってコマンドを作るわけ。

あ,ごめん,Windows じゃこういうことできませんよね。
Windows の場合,パスが通った場所に cargo-hello.bat ってバッチファイルを置いて,その中で

cargo-hello.bat
ruby cargo-hello.rb

みたいにして Ruby スクリプトを呼び出せばいいはず。

実行

すると,ですよ。
好きな場所で

cargo hello

って打ったら

Hello, Rust. I am Ruby.

って表示されます。

え? それがどうした,だって? だから最初に「アホくさってなる」って言ったでしょ。

つまりどういう

『The Rust Programming Language』の
独自のコマンドでCargoで拡張する - The Rust Programming Language
にも書いてあるとおり,cargo-hogehoge ってコマンドが存在したら,Cargo の hogehoge っていうサブコマンドとして実行してくれる,という単純なルールにしたがっているわけですね。

7
1
2

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
7
1