basic cljs setup for doerg
This commit is contained in:
67
doerg-parser/package.nix
Normal file
67
doerg-parser/package.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
{ buildNpmPackage
|
||||
, mkCljBin
|
||||
, nodejs
|
||||
, importNpmLock
|
||||
, stdenv
|
||||
, clojure
|
||||
, clj-builder
|
||||
, mk-deps-cache
|
||||
, breakpointHook
|
||||
, makeWrapper
|
||||
, lib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
name = "net.deertopia/doerg";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
nativeBuildInputs = [
|
||||
# importNpmLock.npmConfigHook
|
||||
clojure
|
||||
clj-builder
|
||||
breakpointHook
|
||||
makeWrapper
|
||||
];
|
||||
buildInputs = [
|
||||
nodejs
|
||||
];
|
||||
npmDeps = importNpmLock.buildNodeModules {
|
||||
npmRoot = finalAttrs.src;
|
||||
inherit nodejs;
|
||||
};
|
||||
depsCache = mk-deps-cache {
|
||||
lockfile = finalAttrs.src + "/deps-lock.json";
|
||||
};
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
# Node dependencies.
|
||||
ln -s $npmDeps/node_modules ./node_modules
|
||||
mv package.json package.json.orig
|
||||
mv package-lock.json package-lock.json.orig
|
||||
cp $npmDeps/{package,package-lock}.json .
|
||||
|
||||
# Clojure dependencies.
|
||||
export HOME="$depsCache"
|
||||
export JAVA_TOOL_OPTIONS="-Duser.home=$depsCache"
|
||||
export CLJ_CONFIG="$HOME/.clojure"
|
||||
export CLJ_CACHE="$TMP/cp_cache"
|
||||
export GITLIBS="$HOME/.gitlibs"
|
||||
|
||||
clj-builder --patch-git-sha $PWD
|
||||
|
||||
./node_modules/.bin/shadow-cljs release app
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin $out/var
|
||||
cp -r build/* $out/var
|
||||
# chmod +x $out/bin/doerg
|
||||
makeWrapper ${lib.getExe nodejs} $out/bin/doerg \
|
||||
--add-flags $out/var/doerg/main.js \
|
||||
--prefix NODE_PATH : $npmDeps/node_modules
|
||||
runHook postInstall
|
||||
'';
|
||||
})
|
||||
Reference in New Issue
Block a user