Last active
December 15, 2020 05:40
-
-
Save harshitsilly/a1bd5a405f93966aad20358ae6c4cec5 to your computer and use it in GitHub Desktop.
Electron builder rebuild zip and update blockmap to work with auto-updater.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const path = require('path'); | |
const { execSync } = require('child_process'); | |
const fs = require('fs'); | |
const yaml = require('js-yaml'); | |
const { appBuilderPath } = require('app-builder-bin'); | |
const currentWorkingDirectory = process.cwd(); | |
const packageInfo = require(path.join(currentWorkingDirectory, 'package.json')); | |
const APP_NAME = packageInfo.build.productName; | |
const APP_VERSION = process.argv[2] ? process.argv[2] : packageInfo.version; | |
const APP_DIST_PATH = path.join(currentWorkingDirectory, 'dist'); | |
console.log('Zipping Started'); | |
execSync( | |
`ditto -c -k --sequesterRsrc --keepParent --zlibCompressionLevel 9 "${APP_DIST_PATH}/mac/${APP_NAME}.app" "${APP_DIST_PATH}/${APP_NAME}-${APP_VERSION}-mac.zip"` | |
); | |
console.log('Zipping Completed'); | |
const APP_GENERATED_BINARY_PATH = path.join(APP_DIST_PATH, `${APP_NAME}-${APP_VERSION}-mac.zip`); | |
(function() { | |
try { | |
let output = execSync( | |
`${appBuilderPath} blockmap --input="${APP_GENERATED_BINARY_PATH}" --output="${APP_DIST_PATH}/${APP_NAME}-${APP_VERSION}-mac.zip.blockmap" --compression=gzip` | |
); | |
let { sha512, size } = JSON.parse(output); | |
const ymlPath = path.join(APP_DIST_PATH, 'latest-mac.yml'); | |
let ymlData = yaml.safeLoad(fs.readFileSync(ymlPath, 'utf8')); | |
console.log(ymlData); | |
ymlData.sha512 = sha512; | |
ymlData.files[0].sha512 = sha512; | |
ymlData.files[0].size = size; | |
let yamlStr = yaml.safeDump(ymlData); | |
console.log(yamlStr); | |
fs.writeFileSync(ymlPath, yamlStr, 'utf8'); | |
console.log('Successfully updated YAML file and configurations with blockmap.'); | |
} catch (e) { | |
console.log('Error in updating YAML file and configurations with blockmap.', e); | |
} | |
})(); |
thanks thomas , i will add the channel mentioned in package.json and the second one also.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the gist , 2 changes on my side
line 11: (latest is the deploy channel)
line 25 to allow app names with spaces some quotes where needed :