From 21b3cb8f5dd10b8a775ec6fc120f7f64ad0e4cd3 Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Thu, 5 Mar 2020 18:24:38 +0100 Subject: [PATCH] [enh] Rename web extension artifact to ZIP (need by chrome store) --- gulpfile.js | 19 +++++----- scripts/github.sh | 43 +++++++++++++++-------- scripts/release.sh | 5 +-- www/js/controllers/wallets-controllers.js | 7 ++-- www/js/filters.js | 2 +- www/js/platform.js | 4 +-- www/js/services/wallet-services.js | 10 +++--- 7 files changed, 51 insertions(+), 39 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index ea06f03a..65c1381c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -617,7 +617,9 @@ function webZip() { } -function webExtCopyFiles() { +function webExtensionCopyFiles() { + const wwwPath = './dist/web/www'; + const resourcesPath = './resources/web-ext'; log(colors.green('Copy web extension files...')); const version = JSON.parse(fs.readFileSync('./package.json', 'utf8')).version; @@ -625,8 +627,6 @@ function webExtCopyFiles() { const txtFilter = filter(["**/*.txt"], { restore: true }); // Copy files - const wwwPath = './dist/web/www'; - const resourcesPath = './resources/web-ext'; return gulp.src([ wwwPath + '/**/*', @@ -668,20 +668,19 @@ function webExtCopyFiles() { .pipe(gulp.dest('./dist/web/ext')); } -function webExtXpi() { +function webExtensionZip() { const srcPath = './dist/web/ext'; const distPath = './dist/web/build'; const version = JSON.parse(fs.readFileSync('./package.json', 'utf8')).version; return gulp.src(srcPath + '/**/*.*') - .pipe(zip('cesium-v'+version+'-extension.xpi')) + .pipe(zip('cesium-v'+version+'-extension.zip')) .pipe(gulp.dest(distPath)); } function webBuildSuccess(done) { var version = JSON.parse(fs.readFileSync('./package.json', 'utf8')).version; - log(colors.green("Build for web created at: 'dist/web/build/cesium-v" + version + "-web.zip'")); - log(colors.green("Build for web extension created at: 'dist/webExtension/cesium-v" + version + "-extension.xpi'")); + log(colors.green("Web artifacts created at: 'dist/web/build/cesium-v" + version + "-web.zip' and 'dist/web/build/cesium-v" + version + "-extension.zip'")); done(); } @@ -738,9 +737,9 @@ gulp.task('webCleanUnusedFiles', ['webApiUglify'], webCleanUnusedFiles); gulp.task('webCleanUnusedDirectories', ['webCleanUnusedFiles'], webCleanUnusedDirectories); gulp.task('webZip', ['webCleanUnusedDirectories'], webZip); -gulp.task('webExtCopyFiles', ['webCleanUnusedDirectories'], webExtCopyFiles); -gulp.task('webExtXpi', ['webExtCopyFiles'], webExtXpi); +gulp.task('webExtensionCopyFiles', ['webCleanUnusedDirectories'], webExtensionCopyFiles); +gulp.task('webExtensionZip', ['webExtensionCopyFiles'], webExtensionZip); -gulp.task('webBuild', ['webZip', 'webExtXpi'], webBuildSuccess); +gulp.task('webBuild', ['webZip', 'webExtensionZip'], webBuildSuccess); gulp.task('build:web', ['webBuild']); // = webBuild diff --git a/scripts/github.sh b/scripts/github.sh index 657eb81a..1e04c224 100755 --- a/scripts/github.sh +++ b/scripts/github.sh @@ -91,36 +91,51 @@ case "$1" in fi ### Sending files - echo "Uploading files to ${upload_url} ..." + echo "Uploading artifacts to ${upload_url} ..." dirname=$(pwd) - ZIP_BASENAME="${PROJECT_NAME}-v$current-web.zip" - ZIP_FILE="${DIST_WEB}/${ZIP_BASENAME}" - if [[ -f "${ZIP_FILE}" ]]; then - result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${ZIP_FILE}" "${upload_url}?name=${ZIP_BASENAME}") + # Upload web file + WEB_BASENAME="${PROJECT_NAME}-v$current-web.zip" + WEB_FILE="${DIST_WEB}/${WEB_BASENAME}" + if [[ -f "${WEB_FILE}" ]]; then + result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${WEB_FILE}" "${upload_url}?name=${WEB_BASENAME}") browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+") - ZIP_SHA256=$(cd ${DIST_WEB} && sha256sum "${ZIP_BASENAME}") - echo " - ${browser_download_url} | Checksum: ${ZIP_SHA256}" + WEB_FILE_SHA256=$(cd ${DIST_WEB} && sha256sum "${WEB_BASENAME}") + echo " - ${browser_download_url} | Checksum: ${WEB_FILE_SHA256}" else - echo " - ERROR: Web release (ZIP) not found! Skipping." + echo " - ERROR: Web artifact (ZIP) not found! Skipping." fi + # Upload web extension file + WEB_EXT_BASENAME="${PROJECT_NAME}-v$current-extension.zip" + WEB_EXT_FILE="${DIST_WEB}/${WEB_EXT_BASENAME}" + if [[ -f "${WEB_EXT_FILE}" ]]; then + result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${WEB_EXT_FILE}" "${upload_url}?name=${WEB_EXT_BASENAME}") + browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+") + WEB_EXT_FILE_SHA256=$(cd ${DIST_WEB} && sha256sum "${WEB_EXT_BASENAME}") + echo " - ${browser_download_url} | Checksum: ${WEB_EXT_FILE_SHA256}" + else + echo " - ERROR: Web extension artifact (ZIP) not found! Skipping." + fi + + # Upload Android APK file APK_BASENAME="${PROJECT_NAME}-v${current}-android.apk" APK_FILE="${DIST_ANDROID}/${APK_BASENAME}" if [[ -f "${APK_FILE}" ]]; then result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${APK_BASENAME}") browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+") - APK_SHA256=$(cd ${DIST_ANDROID} && sha256sum "${APK_BASENAME}") - echo " - ${browser_download_url} | Checksum: ${APK_SHA256}" + APK_FILE_SHA256=$(cd ${DIST_ANDROID} && sha256sum "${APK_BASENAME}") + echo " - ${browser_download_url} | Checksum: ${APK_FILE_SHA256}" else - echo "- ERROR: Android release (APK) not found! Skipping." + echo "- ERROR: Android artifact (APK) not found! Skipping." fi - # Send Checksum file + # Upload sha256 file (checksum) SHA_BASENAME=${PROJECT_NAME}-v$current.sha256 SHA_FILE=${PROJECT_DIR}/dist/${SHA_BASENAME} - echo "${ZIP_SHA256}" > ${SHA_FILE} - echo "${APK_SHA256}" >> ${SHA_FILE} + echo "${WEB_FILE_SHA256}" > ${SHA_FILE} + echo "${WEB_EXT_FILE_SHA256}" >> ${SHA_FILE} + echo "${APK_FILE_SHA256}" >> ${SHA_FILE} result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${SHA_FILE}" "${upload_url}?name=${SHA_BASENAME}") echo "-----------------------------------------" diff --git a/scripts/release.sh b/scripts/release.sh index c60ef0c7..a2308484 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -120,7 +120,7 @@ if [[ ! -f "${DIST_WEB_FILE}" ]]; then echo "ERROR: Missing web artifact at ${DIST_WEB_FILE}" exit 1 fi; -DIST_WEB_EXT_FILE="${DIST_WEB}/${PROJECT_NAME}-v$2-extension.xpi" +DIST_WEB_EXT_FILE="${DIST_WEB}/${PROJECT_NAME}-v$2-extension.zip" if [[ ! -f "${DIST_WEB_EXT_FILE}" ]]; then echo "ERROR: Missing web-ext artifact at ${DIST_WEB_EXT_FILE}" exit 1 @@ -177,9 +177,6 @@ else fi fi - -exit 1 - echo "**********************************" echo "* Uploading artifacts to Github..." echo "**********************************" diff --git a/www/js/controllers/wallets-controllers.js b/www/js/controllers/wallets-controllers.js index 5e9a7cfc..8825522a 100644 --- a/www/js/controllers/wallets-controllers.js +++ b/www/js/controllers/wallets-controllers.js @@ -318,7 +318,7 @@ function WalletListAbstractController($scope, $q, $timeout, UIUtils, filterTrans method: 'PUBKEY' // Default method - fix #767 }) .then(function(walletData) { - if (!walletData) { // User cancelled + if (!walletData ||Â !walletData.pubkey) { // User cancelled UIUtils.loading.hide(100); return; } @@ -337,7 +337,7 @@ function WalletListAbstractController($scope, $q, $timeout, UIUtils, filterTrans return; } - console.debug("[wallet] Adding secondary wallet {"+walletData.pubkey.substring(0,8)+"}"); + console.debug("[wallet] Adding secondary wallet {{0}}".format(walletData.pubkey.substring(0,8))); // Add the child wallet return $scope.addNewWallet(wallet) @@ -530,6 +530,7 @@ function WalletListViewController($scope, $controller, $state, $timeout, $q, $tr $scope.hideActionsPopover(); var loginAndAddWallet = function(authData) { + if (!authData ||Â !authData.pubkey) return $q.reject('Invalid authentication data'); console.debug("[wallet] Adding secondary wallet {"+authData.pubkey.substring(0,8)+"}"); var wallet = csWallet.children.instance(); return wallet.login({ @@ -588,7 +589,7 @@ function WalletListViewController($scope, $controller, $state, $timeout, $q, $tr return $q(function(resolve, reject) { $translate(['ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE', 'ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP', 'COMMON.BTN_OK', 'COMMON.BTN_CANCEL']) .then(function (translations) { - $scope.formData.name = wallet.data.localName || wallet.data.name || wallet.data.uid || wallet.data.pubkey.substring(0, 8); + $scope.formData.name = wallet.data.localName || wallet.data.name || wallet.data.uid || (wallet.data.pubkey && wallet.data.pubkey.substring(0, 8)) ||Â ''; // Choose UID popup $ionicPopup.show({ diff --git a/www/js/filters.js b/www/js/filters.js index 3cf9060a..b38b0cc2 100644 --- a/www/js/filters.js +++ b/www/js/filters.js @@ -349,7 +349,7 @@ angular.module('cesium.filters', ['cesium.config', 'cesium.platform', 'pascalpre return function(input) { if (!input) return ''; input = input.toLowerCase(); - return input.substring(0,1).toUpperCase()+input.substring(1); + return input.length > 1 ? (input.substring(0,1).toUpperCase()+input.substring(1)) : input; }; }) diff --git a/www/js/platform.js b/www/js/platform.js index 57c60f75..02c2de56 100644 --- a/www/js/platform.js +++ b/www/js/platform.js @@ -33,11 +33,9 @@ angular.module('cesium.platform', ['ngIdle', 'cesium.config', 'cesium.services'] // endRemoveIf(no-device) }) - .config(function($compileProvider, csConfig) { 'ngInject'; - - $compileProvider.debugInfoEnabled(!!csConfig.debug); + $compileProvider.debugInfoEnabled(csConfig.debug === true); }) .config(function($animateProvider) { diff --git a/www/js/services/wallet-services.js b/www/js/services/wallet-services.js index e182342a..51cf9cc9 100644 --- a/www/js/services/wallet-services.js +++ b/www/js/services/wallet-services.js @@ -1760,11 +1760,8 @@ angular.module('cesium.wallet.services', ['ngApi', 'ngFileSaver', 'cesium.bma.se var saveIdFile = new Blob([saveId], {type: 'text/plain; charset=utf-8'}); FileSaver.saveAs(saveIdFile, '{0}-recover_ID.txt'.format(data.pubkey.substring(0,8))); }); - }, - - downloadKeyFile = function(format){ if (!isAuth()) return $q.reject('user not authenticated'); @@ -2121,7 +2118,12 @@ angular.module('cesium.wallet.services', ['ngApi', 'ngFileSaver', 'cesium.bma.se fromJson = function(json, failIfInvalid) { failIfInvalid = angular.isUndefined(failIfInvalid) ? true : failIfInvalid; return $q(function(resolve, reject) { - var obj = JSON.parse(json || '{}'); + var obj; + try { + obj = JSON.parse(json || '{}'); + } + catch(err) { /* invalid JSON : continue*/} + // FIXME #379 /*if (obj && obj.pubkey) { resolve({ -- GitLab