Code Monkey home page Code Monkey logo

clj-kondo-bb's Introduction

clj-kondo-bb

Invoke clj-kondo from babashka scripts!

Install

Add this dependency to bb.edn or deps.edn (for bb libraries):

{:deps {io.github.clj-kondo/clj-kondo-bb {:git/tag "v2023.01.20" :git/sha "adfc7df"}}}

You can invoke clj-kondo as a babashka one-liner like this:

bb -Sdeps '{:deps {io.github.clj-kondo/clj-kondo-bb ...}}' -x clj-kondo.core/exec --lint src

You can add this library along with JVM clj-kondo without causing conflicts.

Usage

In a babaska script:

(require '[clj-kondo.core :as clj-kondo])

(let [{:keys [summary] :as results} (clj-kondo/run! {:lint ["src"]})]
  (clj-kondo/print! results)
  (when (or (pos? (:warning summary))
            (pos? (:error summary)))
    (throw (ex-info "Lint errors" {:babashka/exit 1}))))

License

Copyright © 2019 - 2023 Michiel Borkent

Distributed under the EPL License, same as Clojure. See LICENSE.

clj-kondo-bb's People

Contributors

borkdude avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

clj-kondo-bb's Issues

Consider making clj-kondo version dynamic

I think it would be cool if we could make this line dynamic:

https://github.com/clj-kondo/clj-kondo-bb/blob/main/src/clj_kondo/core.bb#LL5C50-L5C50

Example:

(def clj-kondo-version (or (System/getenv "CLJ_KONDO_VERSION") "2022.11.02"))

(pods/load-pod 'clj-kondo/clj-kondo clj-kondo-version)

Our team is looking for an easy way to pin clj-kondo versioning for both local development, ci and ides. This could help with local dev and CI a bit. (Using the lein plugin is a bit too slow for local dev compared to awesome babashka ;) )

Example desired invocation:

CLJ_KONDO_VERSION="2022.11.02" bb -Sdeps '{:deps {io.github.clj-kondo/clj-kondo-bb {:git/sha "665dc00b47ea83b996486b87dcd4e26d701bae6d"}}}' -x clj-kondo.core/exec --lint src

It'd be nice to partner with clojure-lsp as well to see if there could be a way to pin the clj-kondo version when desired there too!

Any other thoughts/ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.