git-subtree-dir: third_party/nixpkgs git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
41 lines
1.4 KiB
Nix
41 lines
1.4 KiB
Nix
{ stdenvNoCC, fetchurl, unzip, lib }:
|
|
|
|
{ pname, versionPrefix ? "", version, zipHash, meta ? {}, passthru ? {}, ... }@args:
|
|
let plat = stdenvNoCC.hostPlatform.system; in stdenvNoCC.mkDerivation ({
|
|
inherit pname versionPrefix version;
|
|
|
|
src = if lib.isAttrs zipHash then
|
|
fetchurl {
|
|
name = "${pname}-${versionPrefix}${version}-${plat}.zip";
|
|
hash = zipHash.${plat} or (throw "Unsupported system: ${plat}");
|
|
url = "https://grafana.com/api/plugins/${pname}/versions/${versionPrefix}${version}/download" + {
|
|
x86_64-linux = "?os=linux&arch=amd64";
|
|
aarch64-linux = "?os=linux&arch=arm64";
|
|
x86_64-darwin = "?os=darwin&arch=amd64";
|
|
aarch64-darwin = "?os=darwin&arch=arm64";
|
|
}.${plat} or (throw "Unsupported system: ${plat}");
|
|
}
|
|
else
|
|
fetchurl {
|
|
name = "${pname}-${versionPrefix}${version}.zip";
|
|
hash = zipHash;
|
|
url = "https://grafana.com/api/plugins/${pname}/versions/${versionPrefix}${version}/download";
|
|
}
|
|
;
|
|
|
|
nativeBuildInputs = [ unzip ];
|
|
|
|
installPhase = ''
|
|
cp -R "." "$out"
|
|
chmod -R a-w "$out"
|
|
chmod u+w "$out"
|
|
'';
|
|
|
|
passthru = {
|
|
updateScript = [ ./update-grafana-plugin.sh pname ];
|
|
} // passthru;
|
|
|
|
meta = {
|
|
homepage = "https://grafana.com/grafana/plugins/${pname}";
|
|
} // meta;
|
|
} // (builtins.removeAttrs args [ "zipHash" "pname" "versionPrefix" "version" "sha256" "meta" ]))
|