Files
openhab.nix/openhab.nix

72 lines
1.6 KiB
Nix

{
bash,
coreutils,
fetchurl,
gawk,
jdk-openhab,
lib,
makeWrapper,
procps,
zip,
unzip,
stdenv,
}:
let
version = "4.2.0.M1";
sha256 = "a7e390b21abb476c17ac2976a77fed8c15b5b8b493ad34de0a2deb81a96bdf07";
in stdenv.mkDerivation rec {
inherit version;
pname = "openhab";
src = fetchurl {
url = "https://github.com/openhab/openhab-distro/releases/download/4.2.0.M1/openhab-4.2.0.M1.tar.gz";
inherit sha256;
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash ];
outputs = [ "out" ];
extraPath = lib.makeBinPath [ jdk-openhab gawk coreutils procps zip unzip ];
wrappedExecutables = [
"start.sh"
"start_debug.sh"
"runtime/bin/karaf"
"runtime/bin/backup"
"runtime/bin/client"
"runtime/bin/instance"
"runtime/bin/karaf"
"runtime/bin/restore"
"runtime/bin/shell"
"runtime/bin/start"
"runtime/bin/status"
"runtime/bin/stop"
"runtime/bin/update"
];
unpackPhase = ''
runHook preUnpack
mkdir -p $out
tar -C $out -xf $src
runHook postUnpack
'';
installPhase = ''
runHook preInstall
rm -rfv \
"$out/"*.bat \
"$out/runtime/bin/"*.bat \
"$out/runtime/bin/"*.ps1 \
"$out/runtime/bin/"*.psm1
for exe in $wrappedExecutables; do
echo "Rewriting $exe"
cat - $out/$exe > "$out/$exe".new << EOF
#!${bash}/bin/sh
export PATH="\''$PATH:$extraPath"
EOF
mv "$out/$exe".new "$out/$exe"
done
runHook postInstall
'';
}