Skip to content

Latest commit

 

History

History
56 lines (37 loc) · 1.8 KB

README.md

File metadata and controls

56 lines (37 loc) · 1.8 KB

lein-files-hash

A Leiningen plugin to save hash trees of files and directories to properties files.

Usage

Add the dependency to the :plugins vector of your project.clj:

Clojars Project

Configure what should be hashed and saved where:

  :files-hash [{:properties-file "resources/versions.properties"
                :property-key "graph-hash"
                :deps  ["org.some.dependency/dependency"
                        "org.some.other.dependency/other-dependency"]
                :paths ["src/de/otto/package1"
                        "src/de/otto/package2"]}]

This will then on invocation create a SHA-256 Merkle hash tree of all files (using filenames under the given paths) and dependencies (using dependency names and the corresponding version). The resulting hash is stored under the given key in the given properties file. As the format hints, you can have multiple such configurations. You can also refer to single file names in the paths vector.

The properties file is read and written through java.util.Properties (not org.apache.commons.configuration.PropertiesConfiguration!). This means that comments are clobbered and in the case of duplicate keys, the last one wins.

Call from shell:

$ lein files-hash

You might want to do this in your project's build aliases:

:aliases {"uberjar" ["do" ["clean"] ["files-hash"] "uberjar"]}

Maintainers

See MAINTAINERS.

Lifecyle status

See OSSMETADATA.

License

Copyright © 2019 OTTO GmbH & Co. KG

This program and the accompanying materials are made available under the terms of the Apache License 2.0, see the LICENSE file or https://www.apache.org/licenses/LICENSE-2.0.html