CUIとWebの間には大きな壁があります。たとえばWebアプリケーションを使えば、サーバサイドのコマンドを使うこともできるでしょう。しかし、そのために実行環境を作ったり、Webアプリケーションを立てるのはとても面倒です。 そこで使ってみたいのがwebifyです。ちょっとしたコマンドをブラウザから実行できます。

webifyの使い方

たとえば文字数をカウントするコマンド wc を指定します。

webify wc -c

そしてここにブラウザ(ここではcurlコマンド)からアクセスします。データとして文字列を渡すと、その結果が返ってきます。

$  curl -d 'This is a really long sentence' http://localhost:8080
30

同様にgrepで実行してみます。

$ webify grep 'Test'
2020/09/03 14:25:46 listening on :8080, proxying to grep Test
2020/09/03 14:25:50 error running subprocess: <nil>

マッチした場合、その文字が返ってくるAPIサーバになりました。

$ curl -d 'This' http://localhost:8080
$ curl -d 'Test' http://localhost:8080
Test

webifyはデータを指定すると、それが標準出力としてコマンドに送られます。そして、そのコマンドでは結果を標準出力すると、HTTPアクセスの結果になります。シンプルですので、アイデア次第でおもしろい使い方が見つかりそうです。

webifyはGo製のオープンソース・ソフトウェア(MIT License)です。

beefsack/webify: Turn shell commands into web services