Incubateur de développement pour les scripts Babashka. C'est là que je développe des scripts à Clojure, puis je les ai coupés avec Babashka.
J'ai fait une présentation sur l'écriture de scripts à Babashka. Les diapositives sont là.
$PATH
.env
, mais il masque les variables qu'il pense être privées (comme SLACK_TOKEN
). Si vous souhaitez seulement utiliser l'un des scripts, téléchargez-le simplement dans le répertoire Uberscripts et mettez-le dans un répertoire sur votre $PATH
.
BBIN est un excellent moyen d'installer des scripts Babashka avec une seule commande.
Il ne prend pas encore en charge la sélection du script que vous souhaitez lorsqu'un référentiel (comme celui-ci) prend en charge plusieurs, alors utilisez la syntaxe suivante (Fournir --main-opts
et --as
):
bbin install io.github.justone/bb-scripts --main-opts '["-m" "empath"]' --as empath
Reportez-vous aux documents BBIN pour plus d'options.
Avant de commencer le développement, vous devriez avoir l'installé suivant sur votre chemin:
bb
clojure
Pour créer un script, vous devez créer deux fichiers. Par exemple, pour créer un nouveau script appelé foo
, créez les fichiers suivants:
script/foo
- un coureur 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
- la source de Clojure pour le script
(ns foo)
(defn -main [& args]
(println "foo"))
Commencez un REP avec clojure -X:clj:repl
. Cela exposera les ports NREPL et PREPL pour l'intégration de l'éditeur. Cela permet un développement itératif complet axé des remplacements.
Pour tester l'exécution du script dans son ensemble, utilisez l'une des éléments suivants:
./script/foo [args]
- pour tester la course à Babashkaclojure -M:clj -m foo [args]
- pour tester la course à Clojure Pour effectuer des tests avec Babashka:
bb test
Pour exécuter des tests avec Clojure:
clojure -M:clj:test
Babashka peut combiner toutes les espaces de noms utilisés par un script en un seul fichier appelé Uberscript. Il y a un script dans ./scripts/uberscriptify
qui combinera cela avec l'en-tête approprié. Pour créer un Uberscript à partir du script foo
, il suffit d'exécuter:
./scripts/uberscriptify --script foo
Et le fichier résultant sera dans uberscripts/foo
.