Add build.clj

This commit is contained in:
2022-06-02 12:24:10 -07:00
parent 93d3ce91ed
commit bf8e3c7c0d
4 changed files with 61 additions and 63 deletions
+9 -19
View File
@@ -1,34 +1,24 @@
{ lib, stdenv, clojure, gitignoreSource, callPackage, writeText
, writeShellScript, ... }:
{ lib, stdenv, clojure, fetchgit, fetchMavenArtifact, gitignoreSource
, callPackage, writeText, writeShellScript, ... }:
let
base-name = "bebot";
version = "0.1";
full-name = "${base-name}-${version}";
jar-name = "${base-name}.jar";
cljdeps = callPackage ./deps.nix { };
uberdeps-edn =
writeText "deps.edn" ''{:deps {uberdeps/uberdeps {:mvn/version "1.1.4"}}}'';
uberdeps-script = writeShellScript "bebot-uberdeps.sh" ''
SRC=$1
TARGET=$2
clojure -M -m uberdeps.uberjar --deps-file $SRC/deps.edn --target $TARGET
'';
cljdeps = callPackage ./deps.nix { inherit fetchgit fetchMavenArtifact lib; };
classpath = cljdeps.makeClasspaths { };
in stdenv.mkDerivation {
name = full-name;
name = "${full-name}.jar";
src = gitignoreSource ./.;
outputs = [ "lib" ];
buildInputs = [ clojure ] ++ map (d: d.paths) cljdeps.packages;
buildPhase = ''
mkdir $TEMP/build
cd $TEMP/build
cp ${uberdeps-edn} .
${uberdeps-script} $src ./${jar-name}
HOME=./home
mkdir -p $HOME
clojure -Scp ${classpath} -X:build build/uberjar :project org.fudo/bebot :version 0.1
'';
installPhase = ''
cp ./target/${jar-name} $out
cp ./target/bebot-${version}-standalone.jar $out
'';
}