at 24.11-pre 57 lines 1.1 kB view raw
1{ stdenv 2, fetchurl 3, jq 4, strip-nondeterminism 5, unzip 6, writeScript 7, zip 8}: 9 10{ name 11, url ? null 12, sha1 ? "" 13, sha256 ? "" 14, sha512 ? "" 15, fixedExtid ? null 16, hash ? "" 17, src ? "" 18}: 19 20let 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 }; 27in 28stdenv.mkDerivation { 29 inherit name; 30 31 passthru = { 32 inherit extid; 33 }; 34 35 builder = writeScript "xpibuilder" '' 36 source $stdenv/setup 37 38 echo "firefox addon $name into $out" 39 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 ''; 50 51 nativeBuildInputs = [ 52 jq 53 strip-nondeterminism 54 unzip 55 zip 56 ]; 57}