LoginSignup
0
0

作業用スクリプトをClojureで書く2

Posted at

概要

前回の記事でClojureの立上がりが遅いので役に立たないと言ったのですが、jokerを利用すると高速に起動できることがわかったので、導入の手順を以下にまとめていきます。

前提としてMacなので

インストール

公式の手順に則ってbrewでインストールしていきます。
WindowsやLinuxの場合はNixを使うか、リリースページからバイナリを落とすかのいずれかになります。

brew install candid82/brew/joker

使い方

jokerとコマンドを打つとインタープリタが起動します。
単純にClojureの動作を確認したいだけであれば、これで十分かと思います。

テストファイルを作成して実行する場合は、以下のようにjokerの後にファイルパスを記述すればOKです。

joker test.clj

スクリプトファイル

前回の記事とほぼ一緒ですが、単独実行可能なスクリプトファイルとして記述する場合は、以下のように記述すれば良いです。

#^:shebang '[
  exec joker "$0" "$@"
]

;; nsの後は通常はnamespace名を入れるが、単独実行ファイルであり
;; 何でも良いので"_"にしている
(ns _ (:require [joker.os :refer [sh]]))

;; 引数は文字列の配列で取得できる
(let [args *command-line-args*]
  (println args))

(defn run-cmd [cmd]
  (let [res (sh cmd)]
    (println "[Exit code]")
    (println (:exit res))
    (println "[Output]")
    (println (:out res))
    (println "[Error]")
    (println (:err res))))

(run-cmd "ls")
0
0
0

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