Incubadora de desenvolvimento para scripts de Babashka. É aqui que eu desenvolvo scripts em Clojure e depois os corro com Babashka.
Fiz uma apresentação sobre escrever scripts em Babashka. Os slides estão aqui.
$PATH
.env
, mas mascara variáveis que acha que são privadas (como SLACK_TOKEN
). Se você deseja usar apenas um dos scripts, basta fazer o download do diretório Uberscripts e colocá -lo em um diretório no seu $PATH
.
O BBIN é uma ótima maneira de instalar scripts Babashka com um comando.
Ainda não suporta a escolha de qual script você deseja quando um repositório (como este) suporta múltiplas, então use a seguinte sintaxe (forneça --main-opts
e --as
):
bbin install io.github.justone/bb-scripts --main-opts '["-m" "empath"]' --as empath
Consulte o BBIN Docs para obter mais opções.
Antes de começar o desenvolvimento, você deve ter o seguinte instalado no seu caminho:
bb
clojure
Para criar um script, você precisa criar dois arquivos. Por exemplo, para criar um novo script chamado foo
, crie os seguintes arquivos:
script/foo
- um corredor de dev Babashka
#!/usr/bin/env bb
(require '[babashka.deps :as deps])
(deps/add-deps '{:deps {justone/bb-scripts {:local/root "."}}})
(require '[foo])
(when (= *file* (System/getProperty "babashka.file"))
(apply foo/-main *command-line-args*))
src/foo.clj
- a fonte de clojure para o script
(ns foo)
(defn -main [& args]
(println "foo"))
Inicie um repl com clojure -X:clj:repl
. Isso exporá as portas NREPL e PrePL para integração do editor. Isso permite o desenvolvimento completo orientado por repl.
Para testar executando o script como um todo, use um dos seguintes:
./script/foo [args]
- para testar em execução em Babashkaclojure -M:clj -m foo [args]
-para testar a corrida em clojure Para executar testes com Babashka:
bb test
Para executar testes com Clojure:
clojure -M:clj:test
Babashka pode combinar todos os espaços de nome usados por um script em um arquivo chamado Uberscript. Existe um script em ./scripts/uberscriptify
que combinará isso com o cabeçalho adequado. Para criar um uberscript a partir do script foo
, basta executar:
./scripts/uberscriptify --script foo
E o arquivo resultante estará em uberscripts/foo
.