2021-03-09 19:11:46 +00:00
const fs = require ( "fs" ) ;
const { signAddon } = require ( "sign-addon" ) ;
async function sign (
apiKey ,
apiSecret ,
extensionId ,
unsignedPath ,
version ,
destination
) {
const tempDir = require ( "temp-dir" ) ;
const result = await signAddon ( {
xpiPath : unsignedPath ,
version ,
apiKey ,
apiSecret ,
id : extensionId ,
downloadDir : tempDir ,
} ) ;
if ( ! result . success ) {
throw result ;
}
if ( result . downloadedFiles . length === 1 ) {
2021-04-16 03:25:10 +00:00
// Copy the downloaded file to the destination.
// (Avoid `rename` because it fails if the destination is on a different drive.)
fs . copyFileSync ( result . downloadedFiles [ 0 ] , destination ) ;
fs . unlinkSync ( result . downloadedFiles [ 0 ] ) ;
2021-03-09 19:11:46 +00:00
} else {
console . warn (
"Unexpected downloads for signed Firefox extension, expected 1."
) ;
console . warn ( result ) ;
}
}
( async ( ) => {
if (
process . env . MOZILLA _API _KEY &&
process . env . MOZILLA _API _SECRET &&
process . env . FIREFOX _EXTENSION _ID
) {
2021-04-15 19:29:17 +00:00
const { version } = require ( "../assets/manifest.json" ) ;
2021-03-09 19:11:46 +00:00
await sign (
process . env . MOZILLA _API _KEY ,
process . env . MOZILLA _API _SECRET ,
process . env . FIREFOX _EXTENSION _ID ,
process . argv [ 2 ] ,
version ,
process . argv [ 3 ]
) ;
} else {
console . log (
"Skipping signing of Firefox extension. To enable this, please provide MOZILLA_API_KEY, MOZILLA_API_SECRET and FIREFOX_EXTENSION_ID environment variables"
) ;
}
2021-04-16 03:26:49 +00:00
} ) ( ) . catch ( ( error ) => {
console . error ( "Error while signing Firefox extension:" ) ;
console . error ( error ) ;
process . exit ( - 1 ) ;
} ) ;