python311Packages.moto: 4.2.6 -> 4.2.10
[NixPkgs.git] / pkgs / build-support / fetchfirefoxaddon / default.nix
blobe07a6a1a79dd1b99e1665d43cb47a98a43f1a23e
1 { stdenv
2 , fetchurl
3 , jq
4 , strip-nondeterminism
5 , unzip
6 , writeScript
7 , zip
8 }:
10 { name
11 , url ? null
12 , sha1 ? ""
13 , sha256 ? ""
14 , sha512 ? ""
15 , fixedExtid ? null
16 , hash ? ""
17 , src ? ""
20 let
21   extid = if fixedExtid == null then "nixos@${name}" else fixedExtid;
22   source = if url == null then src else
23   fetchurl {
24     url = url;
25     inherit sha1 sha256 sha512 hash;
26   };
28 stdenv.mkDerivation {
29   inherit name;
31   passthru = {
32     inherit extid;
33   };
35   builder = writeScript "xpibuilder" ''
36     source $stdenv/setup
38     echo "firefox addon $name into $out"
40     UUID="${extid}"
41     mkdir -p "$out/$UUID"
42     unzip -q ${source} -d "$out/$UUID"
43     NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}, "browser_specific_settings":{"gecko":{"id": "${extid}"}}}' "$out/$UUID/manifest.json")
44     echo "$NEW_MANIFEST" > "$out/$UUID/manifest.json"
45     cd "$out/$UUID"
46     zip -r -q -FS "$out/$UUID.xpi" *
47     strip-nondeterminism "$out/$UUID.xpi"
48     rm -r "$out/$UUID"
49   '';
51   nativeBuildInputs = [
52     jq
53     strip-nondeterminism
54     unzip
55     zip
56   ];