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

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

Ruby で Cargo のサブコマンド

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

できます。

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

#!/usr/bin/env ruby

puts "Hello, Rust. I am Ruby."

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

あ,ごめん,Windows じゃこういうことできませんよね。
Windows の場合,パスが通った場所に 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 っていうサブコマンドとして実行してくれる,という単純なルールにしたがっているわけですね。

广告
将在 10 秒后关闭
bannerAds