mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-16 21:05:30 +03:00
Added build for Android Play store bundle.
This commit is contained in:
parent
f0bc8219c8
commit
9f0ccee463
11 changed files with 1232 additions and 311 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -14,6 +14,7 @@ debug/
|
||||||
release/
|
release/
|
||||||
testresults/
|
testresults/
|
||||||
.eslintcache
|
.eslintcache
|
||||||
|
cordova/bundle.keystore
|
||||||
|
|
||||||
# OSX
|
# OSX
|
||||||
.DS_store
|
.DS_store
|
||||||
|
|
|
@ -86,7 +86,7 @@ stages:
|
||||||
displayName: 'Install Node.js 10.16.3'
|
displayName: 'Install Node.js 10.16.3'
|
||||||
- script: yarn install
|
- script: yarn install
|
||||||
displayName: 'Run yarn install'
|
displayName: 'Run yarn install'
|
||||||
- script: yarn gulp release --android
|
- script: yarn gulp debug-release --android
|
||||||
displayName: 'Run yarn release for android'
|
displayName: 'Run yarn release for android'
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
displayName: 'Publish Android release'
|
displayName: 'Publish Android release'
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"android": {
|
|
||||||
"release": {
|
|
||||||
"keystore": "release.keystore",
|
|
||||||
"storePassword": "betaflight",
|
|
||||||
"alias": "betaflight",
|
|
||||||
"password" : "betaflight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
18
cordova/build_template.json
Normal file
18
cordova/build_template.json
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"android": {
|
||||||
|
"debug": {
|
||||||
|
"keystore": "debug.keystore",
|
||||||
|
"storePassword": "betaflight_debug",
|
||||||
|
"alias": "betaflight_debug",
|
||||||
|
"password": "password",
|
||||||
|
"packageType": "apk"
|
||||||
|
},
|
||||||
|
"release": {
|
||||||
|
"keystore": "bundle.keystore",
|
||||||
|
"storePassword": "[INJECTED_BY_GULPFILE]",
|
||||||
|
"alias": "betaflight",
|
||||||
|
"password": "password",
|
||||||
|
"packageType": "bundle"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,7 @@
|
||||||
<preference name="SplashMaintainAspectRatio" value="true"/>
|
<preference name="SplashMaintainAspectRatio" value="true"/>
|
||||||
<preference name="SplashShowOnlyFirstTime" value="true"/>
|
<preference name="SplashShowOnlyFirstTime" value="true"/>
|
||||||
<preference name="android-minSdkVersion" value="19"/>
|
<preference name="android-minSdkVersion" value="19"/>
|
||||||
|
<preference name="android-targetSdkVersion" value="30" />
|
||||||
<config-file parent="/manifest/application/activity" target="AndroidManifest.xml">
|
<config-file parent="/manifest/application/activity" target="AndroidManifest.xml">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
|
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
|
||||||
|
|
BIN
cordova/debug.keystore
Normal file
BIN
cordova/debug.keystore
Normal file
Binary file not shown.
Binary file not shown.
179
gulpfile.js
179
gulpfile.js
|
@ -27,8 +27,10 @@ const os = require('os');
|
||||||
const git = require('simple-git')();
|
const git = require('simple-git')();
|
||||||
const source = require('vinyl-source-stream');
|
const source = require('vinyl-source-stream');
|
||||||
const stream = require('stream');
|
const stream = require('stream');
|
||||||
|
const prompt = require('gulp-prompt');
|
||||||
|
|
||||||
const cordova = require("cordova-lib").cordova;
|
const cordova = require("cordova-lib").cordova;
|
||||||
|
|
||||||
const browserify = require('browserify');
|
const browserify = require('browserify');
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
|
|
||||||
|
@ -45,7 +47,6 @@ const NODE_ENV = process.env.NODE_ENV || 'production';
|
||||||
|
|
||||||
const NAME_REGEX = /-/g;
|
const NAME_REGEX = /-/g;
|
||||||
|
|
||||||
|
|
||||||
const nwBuilderOptions = {
|
const nwBuilderOptions = {
|
||||||
version: '0.54.1',
|
version: '0.54.1',
|
||||||
files: `${DIST_DIR}**/*`,
|
files: `${DIST_DIR}**/*`,
|
||||||
|
@ -110,18 +111,18 @@ const debugDistBuild = gulp.series(process_package_debug, dist_src, dist_changel
|
||||||
const distRebuild = gulp.series(clean_dist, distBuild);
|
const distRebuild = gulp.series(clean_dist, distBuild);
|
||||||
gulp.task('dist', distRebuild);
|
gulp.task('dist', distRebuild);
|
||||||
|
|
||||||
const appsBuild = gulp.series(gulp.parallel(clean_apps, distRebuild), apps, gulp.series(cordova_apps()), gulp.parallel(listPostBuildTasks(APPS_DIR)));
|
const appsBuild = gulp.series(gulp.parallel(clean_apps, distRebuild), apps, gulp.series(cordova_apps(true)), gulp.parallel(listPostBuildTasks(APPS_DIR)));
|
||||||
gulp.task('apps', appsBuild);
|
gulp.task('apps', appsBuild);
|
||||||
|
|
||||||
const debugAppsBuild = gulp.series(gulp.parallel(clean_debug, gulp.series(clean_dist, debugDistBuild)), debug, gulp.series(cordova_apps()), gulp.parallel(listPostBuildTasks(DEBUG_DIR)));
|
const debugAppsBuild = gulp.series(gulp.parallel(clean_debug, gulp.series(clean_dist, debugDistBuild)), debug, gulp.series(cordova_apps(false)), gulp.parallel(listPostBuildTasks(DEBUG_DIR)));
|
||||||
|
|
||||||
const debugBuild = gulp.series(debugDistBuild, debug, gulp.parallel(listPostBuildTasks(DEBUG_DIR)), start_debug);
|
const debugBuild = gulp.series(debugDistBuild, debug, gulp.parallel(listPostBuildTasks(DEBUG_DIR)), start_debug);
|
||||||
gulp.task('debug', debugBuild);
|
gulp.task('debug', debugBuild);
|
||||||
|
|
||||||
const releaseBuild = gulp.series(gulp.parallel(clean_release, appsBuild), gulp.parallel(listReleaseTasks(APPS_DIR)));
|
const releaseBuild = gulp.series(gulp.parallel(clean_release, appsBuild), gulp.parallel(listReleaseTasks(true, APPS_DIR)));
|
||||||
gulp.task('release', releaseBuild);
|
gulp.task('release', releaseBuild);
|
||||||
|
|
||||||
const debugReleaseBuild = gulp.series(gulp.parallel(clean_release, debugAppsBuild), gulp.parallel(listReleaseTasks(DEBUG_DIR)));
|
const debugReleaseBuild = gulp.series(gulp.parallel(clean_release, debugAppsBuild), gulp.parallel(listReleaseTasks(false, DEBUG_DIR)));
|
||||||
gulp.task('debug-release', debugReleaseBuild);
|
gulp.task('debug-release', debugReleaseBuild);
|
||||||
|
|
||||||
gulp.task('default', debugBuild);
|
gulp.task('default', debugBuild);
|
||||||
|
@ -292,21 +293,48 @@ function processPackage(done, gitRevision, isReleaseBuild) {
|
||||||
metadata.packageId = pkg.name;
|
metadata.packageId = pkg.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
const packageJson = new stream.Readable;
|
function version_prompt() {
|
||||||
packageJson.push(JSON.stringify(pkg, undefined, 2));
|
return gulp.src('.')
|
||||||
packageJson.push(null);
|
.pipe(prompt.prompt([{
|
||||||
|
type: 'input',
|
||||||
|
name: 'version',
|
||||||
|
message: `Package version (default: ${pkg.version}):`,
|
||||||
|
}, {
|
||||||
|
type: 'input',
|
||||||
|
name: 'storeVersion',
|
||||||
|
message: 'Google Play store version (<x.y.z>, default: package version):',
|
||||||
|
}], function(res) {
|
||||||
|
if (res.version) {
|
||||||
|
pkg.version = res.version;
|
||||||
|
}
|
||||||
|
if (res.storeVersion) {
|
||||||
|
metadata.storeVersion = res.storeVersion;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
Object.keys(pkg)
|
function write_package_file() {
|
||||||
.filter(key => metadataKeys.includes(key))
|
Object.keys(pkg)
|
||||||
.forEach((key) => {
|
.filter(key => metadataKeys.includes(key))
|
||||||
metadata[key] = pkg[key];
|
.forEach((key) => {
|
||||||
});
|
metadata[key] = pkg[key];
|
||||||
|
});
|
||||||
|
|
||||||
packageJson
|
const packageJson = new stream.Readable;
|
||||||
.pipe(source('package.json'))
|
packageJson.push(JSON.stringify(pkg, undefined, 2));
|
||||||
.pipe(gulp.dest(DIST_DIR));
|
packageJson.push(null);
|
||||||
|
|
||||||
done();
|
return packageJson
|
||||||
|
.pipe(source('package.json'))
|
||||||
|
.pipe(gulp.dest(DIST_DIR));
|
||||||
|
}
|
||||||
|
|
||||||
|
const platforms = getPlatforms();
|
||||||
|
if (platforms.indexOf('android') !== -1 && isReleaseBuild) {
|
||||||
|
gulp.series(version_prompt, write_package_file)(done);
|
||||||
|
} else {
|
||||||
|
gulp.series(write_package_file)(done);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function dist_src() {
|
function dist_src() {
|
||||||
|
@ -465,7 +493,7 @@ function debug(done) {
|
||||||
buildNWAppsWrapper(platforms, 'sdk', DEBUG_DIR, done);
|
buildNWAppsWrapper(platforms, 'sdk', DEBUG_DIR, done);
|
||||||
}
|
}
|
||||||
|
|
||||||
function injectARMCache(flavor, callback) {
|
function injectARMCache(flavor, done) {
|
||||||
const flavorPostfix = `-${flavor}`;
|
const flavorPostfix = `-${flavor}`;
|
||||||
const flavorDownloadPostfix = flavor !== 'normal' ? `-${flavor}` : '';
|
const flavorDownloadPostfix = flavor !== 'normal' ? `-${flavor}` : '';
|
||||||
clean_cache().then(function() {
|
clean_cache().then(function() {
|
||||||
|
@ -528,7 +556,7 @@ function injectARMCache(flavor, callback) {
|
||||||
clean_debug();
|
clean_debug();
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
callback();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -592,10 +620,10 @@ function buildNWApps(platforms, flavor, dir, done) {
|
||||||
|
|
||||||
function getGitRevision(done, callback, isReleaseBuild) {
|
function getGitRevision(done, callback, isReleaseBuild) {
|
||||||
let gitRevision = 'norevision';
|
let gitRevision = 'norevision';
|
||||||
git.diff([ '--shortstat' ], function (err, diff) {
|
git.diff([ '--shortstat' ], function (err1, diff) {
|
||||||
if (!err && !diff) {
|
if (!err1 && !diff) {
|
||||||
git.log([ '-1', '--pretty=format:%h' ], function (err, rev) {
|
git.log([ '-1', '--pretty=format:%h' ], function (err2, rev) {
|
||||||
if (!err) {
|
if (!err2) {
|
||||||
gitRevision = rev.latest.hash;
|
gitRevision = rev.latest.hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -608,7 +636,6 @@ function getGitRevision(done, callback, isReleaseBuild) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function start_debug(done) {
|
function start_debug(done) {
|
||||||
|
|
||||||
const platforms = getPlatforms();
|
const platforms = getPlatforms();
|
||||||
|
|
||||||
if (platforms.length === 1) {
|
if (platforms.length === 1) {
|
||||||
|
@ -813,7 +840,7 @@ function createDirIfNotExists(dir) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a list of the gulp tasks to execute for release
|
// Create a list of the gulp tasks to execute for release
|
||||||
function listReleaseTasks(appDirectory) {
|
function listReleaseTasks(isReleaseBuild, appDirectory) {
|
||||||
|
|
||||||
const platforms = getPlatforms();
|
const platforms = getPlatforms();
|
||||||
|
|
||||||
|
@ -869,7 +896,11 @@ function listReleaseTasks(appDirectory) {
|
||||||
|
|
||||||
if (platforms.indexOf('android') !== -1) {
|
if (platforms.indexOf('android') !== -1) {
|
||||||
releaseTasks.push(function release_android() {
|
releaseTasks.push(function release_android() {
|
||||||
return cordova_release();
|
if (isReleaseBuild) {
|
||||||
|
return cordova_release();
|
||||||
|
} else {
|
||||||
|
return cordova_debug_release();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -891,6 +922,7 @@ function cordova_dist() {
|
||||||
distTasks.push(cordova_packagejson);
|
distTasks.push(cordova_packagejson);
|
||||||
distTasks.push(cordova_manifestjson);
|
distTasks.push(cordova_manifestjson);
|
||||||
distTasks.push(cordova_configxml);
|
distTasks.push(cordova_configxml);
|
||||||
|
distTasks.push(cordova_rename_build_json);
|
||||||
distTasks.push(cordova_browserify);
|
distTasks.push(cordova_browserify);
|
||||||
distTasks.push(cordova_depedencies);
|
distTasks.push(cordova_depedencies);
|
||||||
if (cordovaDependencies) {
|
if (cordovaDependencies) {
|
||||||
|
@ -903,11 +935,16 @@ function cordova_dist() {
|
||||||
}
|
}
|
||||||
return distTasks;
|
return distTasks;
|
||||||
}
|
}
|
||||||
function cordova_apps() {
|
|
||||||
|
function cordova_apps(isReleaseBuild) {
|
||||||
const appsTasks = [];
|
const appsTasks = [];
|
||||||
const platforms = getPlatforms();
|
const platforms = getPlatforms();
|
||||||
if (platforms.indexOf('android') !== -1) {
|
if (platforms.indexOf('android') !== -1) {
|
||||||
appsTasks.push(cordova_build);
|
if (isReleaseBuild) {
|
||||||
|
appsTasks.push(cordova_build);
|
||||||
|
} else {
|
||||||
|
appsTasks.push(cordova_debug_build);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
appsTasks.push(function cordova_dist_none(done) {
|
appsTasks.push(function cordova_dist_none(done) {
|
||||||
done();
|
done();
|
||||||
|
@ -933,7 +970,6 @@ function cordova_copy_www() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function cordova_resources() {
|
function cordova_resources() {
|
||||||
|
|
||||||
return gulp.src('assets/android/**')
|
return gulp.src('assets/android/**')
|
||||||
.pipe(gulp.dest(`${CORDOVA_DIST_DIR}resources/android/`));
|
.pipe(gulp.dest(`${CORDOVA_DIST_DIR}resources/android/`));
|
||||||
}
|
}
|
||||||
|
@ -947,7 +983,7 @@ function cordova_include_www() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function cordova_copy_src() {
|
function cordova_copy_src() {
|
||||||
return gulp.src([`${CORDOVA_DIR}**`, `!${CORDOVA_DIR}config_template.xml`, `!${CORDOVA_DIR}package_template.json`])
|
return gulp.src([`${CORDOVA_DIR}**`, `!${CORDOVA_DIR}config_template.xml`, `!${CORDOVA_DIR}package_template.json`, `!${CORDOVA_DIR}build_template.json`])
|
||||||
.pipe(gulp.dest(`${CORDOVA_DIST_DIR}`));
|
.pipe(gulp.dest(`${CORDOVA_DIST_DIR}`));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -972,6 +1008,8 @@ function cordova_packagejson() {
|
||||||
'author': metadata.author,
|
'author': metadata.author,
|
||||||
'license': metadata.license,
|
'license': metadata.license,
|
||||||
}))
|
}))
|
||||||
|
.pipe(gulp.dest(CORDOVA_DIST_DIR))
|
||||||
|
.pipe(rename('manifest.json'))
|
||||||
.pipe(gulp.dest(CORDOVA_DIST_DIR));
|
.pipe(gulp.dest(CORDOVA_DIST_DIR));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -984,7 +1022,7 @@ function cordova_manifestjson() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function cordova_configxml() {
|
function cordova_configxml() {
|
||||||
let androidName = metadata.packageId.replace(NAME_REGEX, '_');
|
const androidName = metadata.packageId.replace(NAME_REGEX, '_');
|
||||||
|
|
||||||
return gulp.src([`${CORDOVA_DIST_DIR}config.xml`])
|
return gulp.src([`${CORDOVA_DIST_DIR}config.xml`])
|
||||||
.pipe(xmlTransformer([
|
.pipe(xmlTransformer([
|
||||||
|
@ -994,12 +1032,18 @@ function cordova_configxml() {
|
||||||
], 'http://www.w3.org/ns/widgets'))
|
], 'http://www.w3.org/ns/widgets'))
|
||||||
.pipe(xmlTransformer([
|
.pipe(xmlTransformer([
|
||||||
{ path: '.', attr: { 'id': `com.betaflight.${androidName}` } },
|
{ path: '.', attr: { 'id': `com.betaflight.${androidName}` } },
|
||||||
{ path: '.', attr: { 'version': metadata.version } },
|
{ path: '.', attr: { 'version': metadata.storeVersion ? metadata.storeVersion : metadata.version } },
|
||||||
]))
|
]))
|
||||||
.pipe(gulp.dest(CORDOVA_DIST_DIR));
|
.pipe(gulp.dest(CORDOVA_DIST_DIR));
|
||||||
}
|
}
|
||||||
|
|
||||||
function cordova_browserify(callback) {
|
function cordova_rename_build_json() {
|
||||||
|
return gulp.src(`${CORDOVA_DIR}build_template.json`)
|
||||||
|
.pipe(rename('build.json'))
|
||||||
|
.pipe(gulp.dest(CORDOVA_DIST_DIR));
|
||||||
|
}
|
||||||
|
|
||||||
|
function cordova_browserify(done) {
|
||||||
const readFile = function(file) {
|
const readFile = function(file) {
|
||||||
return new Promise(function(resolve) {
|
return new Promise(function(resolve) {
|
||||||
if (!file.includes("node_modules")) {
|
if (!file.includes("node_modules")) {
|
||||||
|
@ -1017,7 +1061,7 @@ function cordova_browserify(callback) {
|
||||||
glob(`${CORDOVA_DIST_DIR}www/**/*.js`, {}, function (err, files) {
|
glob(`${CORDOVA_DIST_DIR}www/**/*.js`, {}, function (err, files) {
|
||||||
const readLoop = function() {
|
const readLoop = function() {
|
||||||
if (files.length === 0) {
|
if (files.length === 0) {
|
||||||
callback();
|
done();
|
||||||
} else {
|
} else {
|
||||||
const file = files.pop();
|
const file = files.pop();
|
||||||
readFile(file).then(function() {
|
readFile(file).then(function() {
|
||||||
|
@ -1056,24 +1100,77 @@ function cordova_debug() {
|
||||||
cordova.run();
|
cordova.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
function cordova_build(cb) {
|
function cordova_debug_build(done) {
|
||||||
cordova.build({
|
cordova.build({
|
||||||
'platforms': ['android'],
|
'platforms': ['android'],
|
||||||
'options': {
|
'options': {
|
||||||
release: true,
|
release: false,
|
||||||
buildConfig: 'build.json',
|
buildConfig: 'build.json',
|
||||||
},
|
},
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
process.chdir('../');
|
process.chdir('../');
|
||||||
cb();
|
|
||||||
|
console.log(`APK has been generated at ${CORDOVA_DIST_DIR}platforms/android/app/build/outputs/apk/release/app-release.apk`);
|
||||||
|
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
console.log(`APK will be generated at ${CORDOVA_DIST_DIR}platforms/android/app/build/outputs/apk/release/app-release.apk`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function cordova_release() {
|
function cordova_build(done) {
|
||||||
const filename = await getReleaseFilename('android', 'apk');
|
let storePassword = '';
|
||||||
|
return gulp.series(function password_prompt() {
|
||||||
|
return gulp.src('.')
|
||||||
|
.pipe(prompt.prompt({
|
||||||
|
type: 'password',
|
||||||
|
name: 'storePassword',
|
||||||
|
message: 'Please enter the keystore password:',
|
||||||
|
}, function(res) {
|
||||||
|
storePassword = res.storePassword;
|
||||||
|
}));
|
||||||
|
}, function set_password() {
|
||||||
|
return gulp.src(`build.json`)
|
||||||
|
.pipe(jeditor({
|
||||||
|
'android': {
|
||||||
|
'release' : {
|
||||||
|
'storePassword': storePassword,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./'));
|
||||||
|
}, function build(done2) {
|
||||||
|
return cordova.build({
|
||||||
|
'platforms': ['android'],
|
||||||
|
'options': {
|
||||||
|
release: true,
|
||||||
|
buildConfig: 'build.json',
|
||||||
|
},
|
||||||
|
}).then(function() {
|
||||||
|
// Delete the file containing the store password
|
||||||
|
del(['build.json'], { force: true });
|
||||||
|
process.chdir('../');
|
||||||
|
|
||||||
|
console.log('AAB has been generated at dist_cordova/platforms/android/app/build/outputs/bundle/release/app.aab');
|
||||||
|
done2();
|
||||||
|
});
|
||||||
|
})(done);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function cordova_debug_release() {
|
||||||
|
const filename = getReleaseFilename('android', 'apk');
|
||||||
|
|
||||||
console.log(`Release APK : release/${filename}`);
|
console.log(`Release APK : release/${filename}`);
|
||||||
return gulp.src(`${CORDOVA_DIST_DIR}platforms/android/app/build/outputs/apk/release/app-release.apk`)
|
|
||||||
|
return gulp.src(`${CORDOVA_DIST_DIR}platforms/android/app/build/outputs/apk/debug/app-debug.apk`)
|
||||||
|
.pipe(rename(filename))
|
||||||
|
.pipe(gulp.dest(RELEASE_DIR));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function cordova_release() {
|
||||||
|
const filename = getReleaseFilename('android', 'aab');
|
||||||
|
|
||||||
|
console.log(`Release AAB : release/${filename}`);
|
||||||
|
|
||||||
|
return gulp.src(`${CORDOVA_DIST_DIR}platforms/android/app/build/outputs/bundle/release/app.aab`)
|
||||||
.pipe(rename(filename))
|
.pipe(rename(filename))
|
||||||
.pipe(gulp.dest(RELEASE_DIR));
|
.pipe(gulp.dest(RELEASE_DIR));
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
"browserify": "^17.0.0",
|
"browserify": "^17.0.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
"command-exists": "^1.2.8",
|
"command-exists": "^1.2.8",
|
||||||
"cordova-lib": "^9.0.1",
|
"cordova-lib": "^10.0.0",
|
||||||
"del": "^5.0.0",
|
"del": "^5.0.0",
|
||||||
"eslint": "^7.16.0",
|
"eslint": "^7.16.0",
|
||||||
"eslint-plugin-vue": "^7.3.0",
|
"eslint-plugin-vue": "^7.3.0",
|
||||||
|
@ -94,6 +94,7 @@
|
||||||
"gulp-concat": "~2.6.1",
|
"gulp-concat": "~2.6.1",
|
||||||
"gulp-debian": "~0.1.8",
|
"gulp-debian": "~0.1.8",
|
||||||
"gulp-json-editor": "^2.5.4",
|
"gulp-json-editor": "^2.5.4",
|
||||||
|
"gulp-prompt": "^1.2.0",
|
||||||
"gulp-rename": "^2.0.0",
|
"gulp-rename": "^2.0.0",
|
||||||
"gulp-replace": "^1.0.0",
|
"gulp-replace": "^1.0.0",
|
||||||
"gulp-xml-transformer": "^3.0.0",
|
"gulp-xml-transformer": "^3.0.0",
|
||||||
|
|
|
@ -22,7 +22,7 @@ function useGlobalNodeFunctions() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function readConfiguratorVersionMetadata() {
|
function readConfiguratorVersionMetadata() {
|
||||||
let manifest = chrome.runtime.getManifest();
|
const manifest = chrome.runtime.getManifest();
|
||||||
CONFIGURATOR.productName = manifest.productName;
|
CONFIGURATOR.productName = manifest.productName;
|
||||||
CONFIGURATOR.version = manifest.version;
|
CONFIGURATOR.version = manifest.version;
|
||||||
CONFIGURATOR.gitRevision = manifest.gitRevision;
|
CONFIGURATOR.gitRevision = manifest.gitRevision;
|
||||||
|
@ -30,6 +30,7 @@ function readConfiguratorVersionMetadata() {
|
||||||
|
|
||||||
function appReady() {
|
function appReady() {
|
||||||
readConfiguratorVersionMetadata();
|
readConfiguratorVersionMetadata();
|
||||||
|
|
||||||
i18n.init(function() {
|
i18n.init(function() {
|
||||||
startProcess();
|
startProcess();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue