firefox extensions: support more manifest formats

This commit is contained in:
2024-04-15 03:36:27 +00:00
parent 6b0cbf684f
commit e72a0a4300

View File

@@ -47,8 +47,12 @@ let
# firefox requires addons to have an id field when sideloading: # firefox requires addons to have an id field when sideloading:
# - <https://extensionworkshop.com/documentation/publish/distribute-sideloading/> # - <https://extensionworkshop.com/documentation/publish/distribute-sideloading/>
NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}, "browser_specific_settings":{"gecko":{"id": "${extid}"}}}' manifest.json) for m in manifest.json manifest_v2.json manifest_v3.json; do
echo "$NEW_MANIFEST" > manifest.json if test -e "$m"; then
NEW_MANIFEST=$(jq '. + {"applications": { "gecko": { "id": "${extid}" }}, "browser_specific_settings":{"gecko":{"id": "${extid}"}}}' "$m")
echo "$NEW_MANIFEST" > "$m"
fi
done
runHook postPatch runHook postPatch
''; '';
@@ -70,8 +74,12 @@ let
withPostPatch = postPatch: final.passthru.withAttrs { inherit postPatch; }; withPostPatch = postPatch: final.passthru.withAttrs { inherit postPatch; };
# given an addon, repackage it without some `perm`ission # given an addon, repackage it without some `perm`ission
withoutPermission = perm: final.passthru.withPostPatch '' withoutPermission = perm: final.passthru.withPostPatch ''
NEW_MANIFEST=$(jq 'del(.permissions[] | select(. == "${perm}"))' manifest.json) for m in manifest.json manifest_v2.json manifest_v3.json; do
echo "$NEW_MANIFEST" > manifest.json if test -e "$m"; then
NEW_MANIFEST=$(jq 'del(.permissions[] | select(. == "${perm}"))' "$m")
echo "$NEW_MANIFEST" > "$m"
fi
done
''; '';
}; };
}); });