Also: - Instead of using a boolean flag to determine which package to build, use a generic builder - Add a few missing pre/post hookswip/yesman
parent
63666bf1d5
commit
187e223773
@ -1,53 +1,61 @@ |
||||
{ stdenv |
||||
, dpkg |
||||
, fetchurl |
||||
, unzip |
||||
, useLTS ? false |
||||
}: |
||||
|
||||
{ stdenv, dpkg, fetchurl }: |
||||
|
||||
let |
||||
versions = { |
||||
stable = { |
||||
version = "5.7.20"; |
||||
sha256 = "1ylj4i5mcv6z9n32275ccdf1rqk74zilqsih3r6xzhm30pxrd8dd"; |
||||
generic = { version, sha256, suffix ? "" }: |
||||
stdenv.mkDerivation rec { |
||||
name = "unifi-controller-${version}"; |
||||
|
||||
src = fetchurl { |
||||
url = "https://dl.ubnt.com/unifi/${version}${suffix}/unifi_sysvinit_all.deb"; |
||||
inherit sha256; |
||||
}; |
||||
lts = { |
||||
version = "5.6.36"; |
||||
sha256 = "075q7vm56fdsjwh72y2cb1pirl2pxdkvqnhvd3bf1c2n64mvp6bi"; |
||||
|
||||
nativeBuildInputs = [ dpkg ]; |
||||
|
||||
unpackPhase = '' |
||||
runHook preUnpack |
||||
dpkg-deb -x $src ./ |
||||
runHook postUnpack |
||||
''; |
||||
|
||||
doConfigure = false; |
||||
|
||||
installPhase = '' |
||||
runHook preInstall |
||||
|
||||
mkdir -p $out |
||||
cd ./usr/lib/unifi |
||||
cp -ar dl lib webapps $out |
||||
|
||||
runHook postInstall |
||||
''; |
||||
|
||||
meta = with stdenv.lib; { |
||||
homepage = http://www.ubnt.com/; |
||||
description = "Controller for Ubiquiti UniFi access points"; |
||||
license = licenses.unfree; |
||||
platforms = platforms.unix; |
||||
maintainers = with maintainers; [ wkennington ]; |
||||
}; |
||||
}; |
||||
selectedVersion = |
||||
let attr = if useLTS then "lts" else "stable"; |
||||
in versions."${attr}"; |
||||
in |
||||
|
||||
stdenv.mkDerivation { |
||||
name = "unifi-controller-${selectedVersion.version}"; |
||||
src = with selectedVersion; fetchurl { |
||||
url = "https://dl.ubnt.com/unifi/${version}/unifi_sysvinit_all.deb"; |
||||
inherit sha256; |
||||
}; |
||||
|
||||
buildInputs = [ dpkg ]; |
||||
in rec { |
||||
|
||||
unpackPhase = '' |
||||
dpkg-deb -x $src ./ |
||||
''; |
||||
# https://help.ubnt.com/hc/en-us/articles/115000441548-UniFi-Current-Controller-Versions |
||||
|
||||
doConfigure = false; |
||||
unifiLTS = generic { |
||||
version = "5.6.36"; |
||||
sha256 = "075q7vm56fdsjwh72y2cb1pirl2pxdkvqnhvd3bf1c2n64mvp6bi"; |
||||
}; |
||||
|
||||
installPhase = '' |
||||
mkdir -p $out |
||||
cd ./usr/lib/unifi |
||||
cp -ar dl lib webapps $out |
||||
''; |
||||
unifiStable = generic { |
||||
version = "5.7.20"; |
||||
sha256 = "1ylj4i5mcv6z9n32275ccdf1rqk74zilqsih3r6xzhm30pxrd8dd"; |
||||
}; |
||||
|
||||
meta = with stdenv.lib; { |
||||
homepage = http://www.ubnt.com/; |
||||
description = "Controller for Ubiquiti UniFi accesspoints"; |
||||
license = licenses.unfree; |
||||
platforms = platforms.unix; |
||||
maintainers = with maintainers; [ wkennington ]; |
||||
unifiTesting = generic { |
||||
version = "5.8.14"; |
||||
suffix = "-7ef9535d1b"; |
||||
sha256 = "09gr7zkck6npjhhmd27c9ymyna6anwj3w9v9zjicz9skbrddkccq"; |
||||
}; |
||||
} |
||||
|
Loading…
Reference in new issue