From 8e57f524e941ce177a0f3ddc1f43d1c77d142b31 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 17:17:20 +0900 Subject: [PATCH 01/24] test(create): remove create & build binary usage --- tests/spec/create.spec.js | 114 ++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 34 deletions(-) diff --git a/tests/spec/create.spec.js b/tests/spec/create.spec.js index 757a55daa..48417aaba 100644 --- a/tests/spec/create.spec.js +++ b/tests/spec/create.spec.js @@ -17,52 +17,98 @@ under the License. */ -const spec = __dirname; -const path = require('path'); const fs = require('fs-extra'); -const { superspawn } = require('cordova-common'); +const os = require('os'); +const path = require('path'); +const xcode = require('xcode'); +const create = require('../../bin/lib/create'); -const cordova_bin = path.join(spec, '../..', 'bin'); -const tmp = require('tmp').dirSync().name; +const makeTempDir = () => path.join(os.tmpdir(), `cordova-ios-create-test-${Date.now()}`); -function createAndBuild (projectname, projectid) { - const projectTempDir = path.join(`${tmp}/${projectname}`); - const createBin = path.join(`${cordova_bin}/create`); - const buildBin = path.join(`${projectTempDir}/cordova/build`); +/** + * Verifies that some of the project file exists. Not all will be tested. + * E.g. App's resource directory, xcodeproj, xcworkspace, and CordovaLib. + * + * @param {String} tmpDir + * @param {String} projectName + */ +function verifyProjectFiles (tmpDir, projectName) { + expect(fs.existsSync(path.join(tmpDir, projectName))).toBe(true); + expect(fs.existsSync(path.join(tmpDir, `${projectName}.xcodeproj`))).toBe(true); + expect(fs.existsSync(path.join(tmpDir, `${projectName}.xcworkspace`))).toBe(true); + expect(fs.existsSync(path.join(tmpDir, 'CordovaLib'))).toBe(true); +} - // Remove any pre-existing temp projects - fs.removeSync(projectTempDir); +/** + * Verifies that the set bundle id matches with the expected. + * + * @param {String} tmpDir + * @param {String} projectName + * @param {String} expectedBundleIdentifier + */ +function verifyProjectBundleIdentifier (tmpDir, projectName, expectedBundleIdentifier) { + const pbxproj = path.join(tmpDir, `${projectName}.xcodeproj/project.pbxproj`); + const xcodeproj = xcode.project(pbxproj); + xcodeproj.parseSync(); + const actualBundleIdentifier = xcodeproj.getBuildProperty('PRODUCT_BUNDLE_IDENTIFIER'); + expect(actualBundleIdentifier).toBe(`"${expectedBundleIdentifier}"`); +} - return superspawn.spawn(createBin, [projectTempDir, projectid, projectname], { printCommand: true }).then( - () => { - expect(true).toBe(true); // It is expected that create is successful +/** + * Runs and expects for a successful build. + * + * @param {String} tmpDir + * @returns {Promise} + */ +function verifyBuild (tmpDir) { + const Api = require(path.join(tmpDir, 'cordova/Api.js')); - return superspawn.spawn(buildBin, ['--emulator'], { printCommand: true }).then( - () => { - expect(true).toBe(true); // It is expected that build is successful - }, - () => fail('Project Build has failed and is not expected.') - ); - }, - () => fail('Project create has failed and is not expected.') - ).finally(() => { - // Delete Temp Project - fs.removeSync(projectTempDir); - }); + return new Api() + .build({ emulator: true }) + .then( + () => { + expect(true).toBe(true); + }, + err => fail(`Project Build has failed and is not expected.: ${err}`) + ); +} + +/** + * Runs various create and buid checks. + * + * @param {String} tmpDir + * @param {String} packageName + * @param {String} projectName + * @returns + */ +function verifyCreateAndBuild (tmpDir, packageName, projectName) { + verifyProjectFiles(tmpDir, projectName); + verifyProjectBundleIdentifier(tmpDir, projectName, packageName); + return verifyBuild(tmpDir); } describe('create', () => { - it('Test#001 : create project with ascii name, no spaces', () => { - const projectname = 'testcreate'; - const projectid = 'com.test.app1'; + let tmpDir; + + beforeEach(function () { + tmpDir = makeTempDir(); + }); - return createAndBuild(projectname, projectid); + afterEach(() => { + fs.removeSync(tmpDir); + }); + + it('Test#001 : create project with ascii name, no spaces', () => { + const packageName = 'com.test.app1'; + const projectName = 'testcreate'; + return create.createProject(tmpDir, packageName, projectName, {}, undefined) + .then(() => verifyCreateAndBuild(tmpDir, packageName, projectName)); }, 240 * 1000); // first build takes longer (probably cold caches) it('Test#002 : create project with complicated name', () => { - const projectname = '応応応応 hello & إثرا 用用用用'; - const projectid = 'com.test.app2'; - - return createAndBuild(projectname, projectid); + const packageName = 'com.test.app2'; + const projectName = '応応応応 hello & إثرا 用用用用'; + return create.createProject(tmpDir, packageName, projectName, {}, undefined) + .then(() => verifyCreateAndBuild(tmpDir, packageName, projectName)); }, 120 * 1000); }); From e1959a4c0fe5900af4cb283598bf397cac942e5a Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 17:13:18 +0900 Subject: [PATCH 02/24] refactor!: remove create binaries --- bin/create | 74 -------------------------------------------------- bin/create.bat | 26 ------------------ 2 files changed, 100 deletions(-) delete mode 100755 bin/create delete mode 100755 bin/create.bat diff --git a/bin/create b/bin/create deleted file mode 100755 index 617257d35..000000000 --- a/bin/create +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -/* - * create a Cordova/iOS project - * - * USAGE - * ./create - * - * EXAMPLE - * ./create ~/Desktop/radness org.apache.cordova.radness Radness - */ - -var path = require('path'); -var ConfigParser = require('cordova-common').ConfigParser; -var Api = require('./templates/scripts/cordova/Api'); - -var argv = require('nopt')({ - help: Boolean, - cli: Boolean, - shared: Boolean, // alias for --link - link: Boolean -}, { d: '--verbose' }); - -var projectPath = argv.argv.remain[0]; - -if (argv.help || !projectPath) { - console.log('Usage: $0 [--link] [--cli] []'); - console.log(' --link (optional): Link directly against the shared copy of the CordovaLib instead of a copy of it.'); - console.log(' --cli (optional): Use the CLI-project template.'); - console.log(' : Path to your new Cordova iOS project'); - console.log(' : Package name, following reverse-domain style convention'); - console.log(' : Project name'); - console.log(' : Path to project template (override).'); - process.exit(0); -} - -// use default configuration file from project template -var config = new ConfigParser(path.resolve(__dirname, 'templates/project/__PROJECT_NAME__/config.xml')); - -// apply overrides (package and project names -if (argv.argv.remain[1]) config.setPackageName(argv.argv.remain[1]); -if (argv.argv.remain[2]) config.setName(argv.argv.remain[2]); - -var options = { - cli: argv.cli, - link: argv.link || argv.shared, - customTemplate: argv.argv.remain[3] -}; - -require('./templates/scripts/cordova/loggingHelper').adjustLoggerLevel(argv); - -Api.createPlatform(projectPath, config, options).catch(err => { - console.error(err); - process.exit(2); -}); diff --git a/bin/create.bat b/bin/create.bat deleted file mode 100755 index 43172a6c4..000000000 --- a/bin/create.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script="%~dp0create" -IF EXIST %script% ( - node %script% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'create' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) From 7c4fe549fa63fddf8d02544088784e8c42ae1e76 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 17:10:17 +0900 Subject: [PATCH 03/24] refactor!: remove build binaries --- bin/templates/scripts/cordova/build | 66 ------------------------- bin/templates/scripts/cordova/build.bat | 19 ------- 2 files changed, 85 deletions(-) delete mode 100755 bin/templates/scripts/cordova/build delete mode 100755 bin/templates/scripts/cordova/build.bat diff --git a/bin/templates/scripts/cordova/build b/bin/templates/scripts/cordova/build deleted file mode 100755 index f4b0d9a04..000000000 --- a/bin/templates/scripts/cordova/build +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var args = process.argv; -var Api = require('./Api'); -var nopt = require('nopt'); - -// Support basic help commands -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) >= 0) { - require('./lib/build').help(); - process.exit(0); -} - -// Parse arguments -var buildOpts = nopt({ - verbose: Boolean, - silent: Boolean, - archs: String, - debug: Boolean, - release: Boolean, - device: Boolean, - emulator: Boolean, - codeSignIdentity: String, - codeSignResourceRules: String, - provisioningProfile: String, - automaticProvisioning: Boolean, - developmentTeam: String, - packageType: String, - buildConfig: String, - buildFlag: [String, Array], - noSign: Boolean -}, { '-r': '--release', d: '--verbose' }, args); - -// Make buildOptions compatible with PlatformApi build method spec -buildOpts.argv = buildOpts.argv.remain; - -require('./loggingHelper').adjustLoggerLevel(buildOpts); - -new Api().build(buildOpts).then( - () => { - console.log('** BUILD SUCCEEDED **'); - }, - err => { - var errorMessage = (err && err.stack) ? err.stack : err; - console.error(errorMessage); - process.exit(2); - } -); diff --git a/bin/templates/scripts/cordova/build.bat b/bin/templates/scripts/cordova/build.bat deleted file mode 100755 index 2f97fcb47..000000000 --- a/bin/templates/scripts/cordova/build.bat +++ /dev/null @@ -1,19 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License - -@ECHO OFF -ECHO WARN: The 'build' command is not available for cordova-ios on windows machines.>&2 From f70692b8bb9747acbd4e3c76e9c8227d9727c2f9 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:01:15 +0900 Subject: [PATCH 04/24] refactor: update platform --- bin/lib/create.js | 13 ------------- bin/templates/scripts/cordova/Api.js | 23 ++++++++++------------- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/bin/lib/create.js b/bin/lib/create.js index 4c310dc42..9cf930a04 100755 --- a/bin/lib/create.js +++ b/bin/lib/create.js @@ -237,19 +237,6 @@ exports.createProject = (project_path, package_name, project_name, opts, config) return Promise.resolve(); }; -exports.updateProject = (projectPath, opts) => { - const errorString = - 'An in-place platform update is not supported. \n' + - 'The `platforms` folder is always treated as a build artifact.\n' + - 'To update your platform, you have to remove, then add your ios platform again.\n' + - 'Make sure you save your plugins beforehand using `cordova plugin save`, and save a copy of the platform first if you had manual changes in it.\n' + - '\tcordova plugin save\n' + - '\tcordova platform rm ios\n' + - '\tcordova platform add ios\n'; - - return Promise.reject(new CordovaError(errorString)); -}; - function generateDoneMessage (type, link) { const pkg = require('../../package'); let msg = `iOS project ${type === 'update' ? 'updated' : 'created'} with ${pkg.name}@${pkg.version}`; diff --git a/bin/templates/scripts/cordova/Api.js b/bin/templates/scripts/cordova/Api.js index 325597907..79ac51403 100644 --- a/bin/templates/scripts/cordova/Api.js +++ b/bin/templates/scripts/cordova/Api.js @@ -174,19 +174,16 @@ class Api { static updatePlatform (destination, options, events) { setupEvents(events); - let result; - try { - result = require('../../../lib/create') - .updateProject(destination, options) - .then(() => { - const PlatformApi = require(path.resolve(destination, 'cordova/Api')); - return new PlatformApi('ios', destination, events); - }); - } catch (e) { - events.emit('error', 'updatePlatform is not callable from the iOS project API, you will need to do this manually.'); - throw e; - } - return result; + const errorString = + 'An in-place platform update is not supported. \n' + + 'The `platforms` folder is always treated as a build artifact.\n' + + 'To update your platform, you have to remove, then add your ios platform again.\n' + + 'Make sure you save your plugins beforehand using `cordova plugin save`, and save a copy of the platform first if you had manual changes in it.\n' + + '\tcordova plugin save\n' + + '\tcordova platform rm ios\n' + + '\tcordova platform add ios\n'; + + return Promise.reject(new CordovaError(errorString)); } /** From 335605f75405bbb802ba720754b520b18717b8dd Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:01:52 +0900 Subject: [PATCH 05/24] chore: cleanup update platform error message --- bin/templates/scripts/cordova/Api.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/templates/scripts/cordova/Api.js b/bin/templates/scripts/cordova/Api.js index 79ac51403..1b5d33e4b 100644 --- a/bin/templates/scripts/cordova/Api.js +++ b/bin/templates/scripts/cordova/Api.js @@ -175,10 +175,10 @@ class Api { setupEvents(events); const errorString = - 'An in-place platform update is not supported. \n' + + 'The update platform command is not supported.\n' + 'The `platforms` folder is always treated as a build artifact.\n' + - 'To update your platform, you have to remove, then add your ios platform again.\n' + - 'Make sure you save your plugins beforehand using `cordova plugin save`, and save a copy of the platform first if you had manual changes in it.\n' + + 'To update, you have to remove the old platform and add the new platform.\n' + + 'Make sure to save your plugins beforehand using `cordova plugin save`, and save a copy of the platform first if you had manual changes.\n' + '\tcordova plugin save\n' + '\tcordova platform rm ios\n' + '\tcordova platform add ios\n'; From 2246228d4871384b79e17054f0163fe703c1e09c Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:02:33 +0900 Subject: [PATCH 06/24] refactor!: remove update binaries --- bin/update | 40 ---------------------------------------- bin/update.bat | 26 -------------------------- 2 files changed, 66 deletions(-) delete mode 100755 bin/update delete mode 100755 bin/update.bat diff --git a/bin/update b/bin/update deleted file mode 100755 index 1087c4a00..000000000 --- a/bin/update +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var path = require('path'); -var Api = require('./templates/scripts/cordova/Api'); -var args = require('nopt')({ - link: Boolean, - shared: Boolean, // alias for --link - help: Boolean -}, { d: '--verbose' }); - -if (args.help || args.argv.remain.length === 0) { - console.log('Usage: ' + path.relative(process.cwd(), path.join(__dirname, 'update')) + ' [--link]'); - process.exit(0); -} - -require('./templates/scripts/cordova/loggingHelper').adjustLoggerLevel(args); - -Api.updatePlatform(args.argv.remain[0], { link: (args.link || args.shared) }).catch(err => { - console.log(err); - process.exit(2); -}); diff --git a/bin/update.bat b/bin/update.bat deleted file mode 100755 index 48c451ac4..000000000 --- a/bin/update.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script="%~dp0update" -IF EXIST %script% ( - node %script% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'update' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) From 76cea5977f4cd591b10b0c5206860cd00dc92fc5 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:21:37 +0900 Subject: [PATCH 07/24] refactor!: remove check_reqs binaries & usage --- bin/check_reqs | 32 -------------------------------- bin/check_reqs.bat | 25 ------------------------- bin/lib/create.js | 5 ----- 3 files changed, 62 deletions(-) delete mode 100755 bin/check_reqs delete mode 100755 bin/check_reqs.bat diff --git a/bin/check_reqs b/bin/check_reqs deleted file mode 100755 index 21d7f3056..000000000 --- a/bin/check_reqs +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var check_reqs = require('./templates/scripts/cordova/lib/check_reqs'); - -// check for help flag -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) > -1) { - console.log('Usage: check_reqs or node check_reqs'); -} else { - check_reqs.run().catch(err => { - console.error('Failed to check requirements due to ' + err); - process.exit(2); - }); -} diff --git a/bin/check_reqs.bat b/bin/check_reqs.bat deleted file mode 100755 index 683914b88..000000000 --- a/bin/check_reqs.bat +++ /dev/null @@ -1,25 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License -@ECHO OFF -SET script_path="%~dp0check_reqs" -IF EXIST %script_path% ( - node "%script_path%" %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'check_reqs' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/bin/lib/create.js b/bin/lib/create.js index 9cf930a04..ed1e65d7a 100755 --- a/bin/lib/create.js +++ b/bin/lib/create.js @@ -80,10 +80,6 @@ function copyScripts (projectPath, projectName) { const nodeModulesDir = path.join(ROOT, 'node_modules'); if (fs.existsSync(nodeModulesDir)) fs.copySync(nodeModulesDir, path.join(destScriptsDir, 'node_modules')); - // Copy the check_reqs script - fs.copySync(path.join(binDir, 'check_reqs'), path.join(destScriptsDir, 'check_reqs')); - fs.copySync(path.join(binDir, 'check_reqs.bat'), path.join(destScriptsDir, 'check_reqs.bat')); - // Copy the version scripts fs.copySync(path.join(binDir, 'apple_ios_version'), path.join(destScriptsDir, 'apple_ios_version')); fs.copySync(path.join(binDir, 'apple_osx_version'), path.join(destScriptsDir, 'apple_osx_version')); @@ -95,7 +91,6 @@ function copyScripts (projectPath, projectName) { // modules across both the repo and generated projects, we should make sure // to remove/update this. const path_regex = /templates\/scripts\/cordova\//; - utils.replaceFileContents(path.join(destScriptsDir, 'check_reqs'), path_regex, ''); utils.replaceFileContents(path.join(destScriptsDir, 'apple_ios_version'), path_regex, ''); utils.replaceFileContents(path.join(destScriptsDir, 'apple_osx_version'), path_regex, ''); utils.replaceFileContents(path.join(destScriptsDir, 'apple_xcode_version'), path_regex, ''); From 9ae23d1ac11f1b4e8e2f9bcf77af9c63c99edcd6 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:35:45 +0900 Subject: [PATCH 08/24] refactor!: remove clean binaries --- bin/templates/scripts/cordova/clean | 52 ------------------------- bin/templates/scripts/cordova/clean.bat | 19 --------- 2 files changed, 71 deletions(-) delete mode 100755 bin/templates/scripts/cordova/clean delete mode 100755 bin/templates/scripts/cordova/clean.bat diff --git a/bin/templates/scripts/cordova/clean b/bin/templates/scripts/cordova/clean deleted file mode 100755 index f36a648e5..000000000 --- a/bin/templates/scripts/cordova/clean +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var Api = require('./Api'); -var nopt = require('nopt'); - -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) >= 0) { - console.log('Cleans the project directory.'); - process.exit(0); -} - -// Do some basic argument parsing -var opts = nopt({ - verbose: Boolean, - silent: Boolean -}, { d: '--verbose' }); - -// Make buildOptions compatible with PlatformApi clean method spec -opts.argv = opts.argv.original; - -// Skip cleaning prepared files when not invoking via cordova CLI. -opts.noPrepare = true; - -require('./loggingHelper').adjustLoggerLevel(opts); - -new Api().clean(opts).then( - () => { - console.log('** CLEAN SUCCEEDED **'); - }, - err => { - console.error(err); - process.exit(2); - } -); diff --git a/bin/templates/scripts/cordova/clean.bat b/bin/templates/scripts/cordova/clean.bat deleted file mode 100755 index 583072870..000000000 --- a/bin/templates/scripts/cordova/clean.bat +++ /dev/null @@ -1,19 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License - -@ECHO OFF -ECHO WARN: The 'clean' command is not available for cordova-ios on windows machines.>&2 From 3e5ac4fe2506d63897594ea002b825eac53b3854 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:44:11 +0900 Subject: [PATCH 09/24] refactor!: remove run binaries --- bin/templates/scripts/cordova/run | 66 --------------------------- bin/templates/scripts/cordova/run.bat | 19 -------- 2 files changed, 85 deletions(-) delete mode 100755 bin/templates/scripts/cordova/run delete mode 100755 bin/templates/scripts/cordova/run.bat diff --git a/bin/templates/scripts/cordova/run b/bin/templates/scripts/cordova/run deleted file mode 100755 index 9e6c8f91e..000000000 --- a/bin/templates/scripts/cordova/run +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var args = process.argv; -var Api = require('./Api'); -var nopt = require('nopt'); - -// Handle help flag -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) >= 0) { - require('./lib/run').help(); - process.exit(0); -} - -// Parse arguments (includes build params as well) -var opts = nopt({ - verbose: Boolean, - silent: Boolean, - debug: Boolean, - release: Boolean, - nobuild: Boolean, - archs: String, - list: Boolean, - device: Boolean, - emulator: Boolean, - target: String, - codeSignIdentity: String, - codeSignResourceRules: String, - provisioningProfile: String, - automaticProvisioning: Boolean, - buildConfig: String, - noSign: Boolean -}, { d: '--verbose' }, args); - -// Make options compatible with PlatformApi build method spec -opts.argv = opts.argv.remain; - -require('./loggingHelper').adjustLoggerLevel(opts); - -new Api().run(opts).then( - () => { - console.log('** RUN SUCCEEDED **'); - }, - err => { - var errorMessage = (err && err.stack) ? err.stack : err; - console.error(errorMessage); - process.exit(2); - } -); diff --git a/bin/templates/scripts/cordova/run.bat b/bin/templates/scripts/cordova/run.bat deleted file mode 100755 index 8a3cad2ad..000000000 --- a/bin/templates/scripts/cordova/run.bat +++ /dev/null @@ -1,19 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License - -@ECHO OFF -ECHO WARN: The `run` is not available for cordova-ios on windows machines.>&2 From 0d6ef4f984d3136e711f8c05d0f61a795adf7e30 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 19:43:47 +0900 Subject: [PATCH 10/24] refactor!: remove test binaries - This file referenced a binary that hasnt existed since 2012. (https://github.com/apache/cordova-ios/commit/acc8b340aa0e083a2389f3ef98f88945bcbd1df1) --- bin/test | 53 ----------------------------------------------------- 1 file changed, 53 deletions(-) delete mode 100755 bin/test diff --git a/bin/test b/bin/test deleted file mode 100755 index 3f7df13f8..000000000 --- a/bin/test +++ /dev/null @@ -1,53 +0,0 @@ -#! /bin/sh - -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - - - -# the two lines below are to get the current folder, and resolve symlinks -SCRIPT="$0" -# need this for relative symlinks -while [ -h "$SCRIPT" ] ; do - SCRIPT=`readlink "$SCRIPT"` -done - -BINDIR=$( cd "$( dirname "$SCRIPT" )" && pwd ) -TESTDIR=$BINDIR/mobile-spec-test - -echo "TESTDIR" $SCRIPT - -# get the latest mobile-spec -git clone git://github.com/apache/cordova-mobile-spec.git $BINDIR/mobile-spec - -# clobber test if it exists -if [ -e $TESTDIR ] -then - rm -rf $TESTDIR -fi - -# generate a working proj -$BINDIR/create $TESTDIR org.apache.cordova.test CordovaTest - -# kill the default app and replace it w/ mobile-spec -rm -rf $TESTDIR/www -mv $BINDIR/mobile-spec $TESTDIR/www - -# build it, launch it and start logging on stdout -$TESTDIR/cordova/debug && $TESTDIR/cordova/log From 53bfd8290ff52112a98a8075f6c90f40ccc77cb4 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:50:02 +0900 Subject: [PATCH 11/24] refactor!: remove log binaries --- bin/templates/scripts/cordova/log | 23 ----------------------- bin/templates/scripts/cordova/log.bat | 19 ------------------- 2 files changed, 42 deletions(-) delete mode 100755 bin/templates/scripts/cordova/log delete mode 100755 bin/templates/scripts/cordova/log.bat diff --git a/bin/templates/scripts/cordova/log b/bin/templates/scripts/cordova/log deleted file mode 100755 index b235b09fd..000000000 --- a/bin/templates/scripts/cordova/log +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/sh -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -CORDOVA_PATH=$( cd "$( dirname "$0" )" && pwd -P) - -tail -f "$CORDOVA_PATH/console.log" diff --git a/bin/templates/scripts/cordova/log.bat b/bin/templates/scripts/cordova/log.bat deleted file mode 100755 index 4710e57e8..000000000 --- a/bin/templates/scripts/cordova/log.bat +++ /dev/null @@ -1,19 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License - -@ECHO OFF -ECHO WARN: The 'log' command is not available for cordova-ios on windows machines.>&2 From 8d2912297866041447175415a66c7bea2a249974 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 18:53:49 +0900 Subject: [PATCH 12/24] refactor: cleanup version binaries --- bin/templates/scripts/cordova/version | 7 ------- 1 file changed, 7 deletions(-) diff --git a/bin/templates/scripts/cordova/version b/bin/templates/scripts/cordova/version index 6bb657b48..7234670bc 100755 --- a/bin/templates/scripts/cordova/version +++ b/bin/templates/scripts/cordova/version @@ -19,13 +19,6 @@ under the License. */ -/* - - Returns the VERSION of CordovaLib used. - Note: it does not work if the --shared option was used to create the project. -*/ - -// Coho updates this line const Api = require('./Api'); console.log(Api.version()); From f13996e14af5ff8cecf84a6b2153aad077554d17 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 20:02:19 +0900 Subject: [PATCH 13/24] refactor!: remove uncrustify binary & config --- bin/uncrustify.cfg | 1489 -------------------------------------------- bin/uncrustify.sh | 89 --- 2 files changed, 1578 deletions(-) delete mode 100644 bin/uncrustify.cfg delete mode 100755 bin/uncrustify.sh diff --git a/bin/uncrustify.cfg b/bin/uncrustify.cfg deleted file mode 100644 index 5d9a3349c..000000000 --- a/bin/uncrustify.cfg +++ /dev/null @@ -1,1489 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Based off of https://gist.github.com/261662/ - -# -# General options -# - -# The type of line endings -newlines = lf # auto/lf/crlf/cr - -# The original size of tabs in the input -input_tab_size = 4 # number - -# The size of tabs in the output (only used if align_with_tabs=true) -output_tab_size = 4 # number - -# The ASCII value of the string escape char, usually 92 (\) or 94 (^). (Pawn) -string_escape_char = 92 # number - -# Alternate string escape char for Pawn. Only works right before the quote char. -string_escape_char2 = 0 # number - -# Allow interpreting '>=' and '>>=' as part of a template in 'void f(list>=val);'. -# If true (default), 'assert(x<0 && y>=3)' will be broken. -# Improvements to template detection may make this option obsolete. -tok_split_gte = false # false/true - -# Control what to do with the UTF-8 BOM (recommend 'remove') -utf8_bom = ignore # ignore/add/remove/force - -# If the file contains bytes with values between 128 and 255, but is not UTF-8, then output as UTF-8 -utf8_byte = false # false/true - -# Force the output encoding to UTF-8 -utf8_force = false # false/true - -# -# Indenting -# - -# The number of columns to indent per level. -# Usually 2, 3, 4, or 8. -indent_columns = 4 # number - -# The continuation indent. If non-zero, this overrides the indent of '(' and '=' continuation indents. -# For FreeBSD, this is set to 4. Negative value is absolute and not increased for each ( level -indent_continue = 4 # number - -# How to use tabs when indenting code -# 0=spaces only -# 1=indent with tabs to brace level, align with spaces -# 2=indent and align with tabs, using spaces when not on a tabstop -indent_with_tabs = 0 # number - -# Comments that are not a brace level are indented with tabs on a tabstop. -# Requires indent_with_tabs=2. If false, will use spaces. -indent_cmt_with_tabs = false # false/true - -# Whether to indent strings broken by '\' so that they line up -indent_align_string = false # false/true - -# The number of spaces to indent multi-line XML strings. -# Requires indent_align_string=True -indent_xml_string = 0 # number - -# Spaces to indent '{' from level -indent_brace = 0 # number - -# Whether braces are indented to the body level -indent_braces = false # false/true - -# Disabled indenting function braces if indent_braces is true -indent_braces_no_func = false # false/true - -# Disabled indenting class braces if indent_braces is true -indent_braces_no_class = false # false/true - -# Disabled indenting struct braces if indent_braces is true -indent_braces_no_struct = false # false/true - -# Indent based on the size of the brace parent, i.e. 'if' => 3 spaces, 'for' => 4 spaces, etc. -indent_brace_parent = false # false/true - -# Whether the 'namespace' body is indented -indent_namespace = false # false/true - -# The number of spaces to indent a namespace block -indent_namespace_level = 0 # number - -# If the body of the namespace is longer than this number, it won't be indented. -# Requires indent_namespace=true. Default=0 (no limit) -indent_namespace_limit = 0 # number - -# Whether the 'extern "C"' body is indented -indent_extern = false # false/true - -# Whether the 'class' body is indented -indent_class = true # false/true - -# Whether to indent the stuff after a leading class colon -indent_class_colon = true # false/true - -# Additional indenting for constructor initializer list -indent_ctor_init = 0 # number - -# False=treat 'else\nif' as 'else if' for indenting purposes -# True=indent the 'if' one level -indent_else_if = false # false/true - -# Amount to indent variable declarations after a open brace. neg=relative, pos=absolute -indent_var_def_blk = 0 # number - -# Indent continued variable declarations instead of aligning. -indent_var_def_cont = false # false/true - -# True: indent continued function call parameters one indent level -# False: align parameters under the open paren -indent_func_call_param = false # false/true - -# Same as indent_func_call_param, but for function defs -indent_func_def_param = false # false/true - -# Same as indent_func_call_param, but for function protos -indent_func_proto_param = false # false/true - -# Same as indent_func_call_param, but for class declarations -indent_func_class_param = false # false/true - -# Same as indent_func_call_param, but for class variable constructors -indent_func_ctor_var_param = false # false/true - -# Same as indent_func_call_param, but for templates -indent_template_param = false # false/true - -# Double the indent for indent_func_xxx_param options -indent_func_param_double = false # false/true - -# Indentation column for standalone 'const' function decl/proto qualifier -indent_func_const = 0 # number - -# Indentation column for standalone 'throw' function decl/proto qualifier -indent_func_throw = 0 # number - -# The number of spaces to indent a continued '->' or '.' -# Usually set to 0, 1, or indent_columns. -indent_member = 4 # number - -# Spaces to indent single line ('//') comments on lines before code -indent_sing_line_comments = 0 # number - -# If set, will indent trailing single line ('//') comments relative -# to the code instead of trying to keep the same absolute column -indent_relative_single_line_comments = false # false/true - -# Spaces to indent 'case' from 'switch' -# Usually 0 or indent_columns. -indent_switch_case = 4 # number - -# Spaces to shift the 'case' line, without affecting any other lines -# Usually 0. -indent_case_shift = 0 # number - -# Spaces to indent '{' from 'case'. -# By default, the brace will appear under the 'c' in case. -# Usually set to 0 or indent_columns. -indent_case_brace = 4 # number - -# Whether to indent comments found in first column -indent_col1_comment = true # false/true - -# How to indent goto labels -# >0 : absolute column where 1 is the leftmost column -# <=0 : subtract from brace indent -indent_label = 1 # number - -# Same as indent_label, but for access specifiers that are followed by a colon -indent_access_spec = 1 # number - -# Indent the code after an access specifier by one level. -# If set, this option forces 'indent_access_spec=0' -indent_access_spec_body = false # false/true - -# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended) -indent_paren_nl = false # false/true - -# Controls the indent of a close paren after a newline. -# 0: Indent to body level -# 1: Align under the open paren -# 2: Indent to the brace level -indent_paren_close = 0 # number - -# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren -indent_comma_paren = false # false/true - -# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren -indent_bool_paren = false # false/true - -# If 'indent_bool_paren' is true, controls the indent of the first expression. If TRUE, aligns the first expression to the following ones -indent_first_bool_expr = false # false/true - -# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended) -indent_square_nl = false # false/true - -# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies -indent_preserve_sql = false # false/true - -# Align continued statements at the '='. Default=True -# If FALSE or the '=' is followed by a newline, the next line is indent one tab. -indent_align_assign = true # false/true - -# -# Spacing options -# - -# Add or remove space around arithmetic operator '+', '-', '/', '*', etc -sp_arith = force # ignore/add/remove/force - -# Add or remove space around assignment operator '=', '+=', etc -sp_assign = force # ignore/add/remove/force - -# Add or remove space around assignment operator '=' in a prototype -sp_assign_default = force # ignore/add/remove/force - -# Add or remove space before assignment operator '=', '+=', etc. Overrides sp_assign. -sp_before_assign = ignore # ignore/add/remove/force - -# Add or remove space after assignment operator '=', '+=', etc. Overrides sp_assign. -sp_after_assign = ignore # ignore/add/remove/force - -# Add or remove space around assignment '=' in enum -sp_enum_assign = force # ignore/add/remove/force - -# Add or remove space before assignment '=' in enum. Overrides sp_enum_assign. -sp_enum_before_assign = ignore # ignore/add/remove/force - -# Add or remove space after assignment '=' in enum. Overrides sp_enum_assign. -sp_enum_after_assign = ignore # ignore/add/remove/force - -# Add or remove space around preprocessor '##' concatenation operator. Default=Add -sp_pp_concat = ignore # ignore/add/remove/force - -# Add or remove space after preprocessor '#' stringify operator. Also affects the '#@' charizing operator. Default=Add -sp_pp_stringify = remove # ignore/add/remove/force - -# Add or remove space around boolean operators '&&' and '||' -sp_bool = force # ignore/add/remove/force - -# Add or remove space around compare operator '<', '>', '==', etc -sp_compare = force # ignore/add/remove/force - -# Add or remove space inside '(' and ')' -sp_inside_paren = remove # ignore/add/remove/force - -# Add or remove space between nested parens -sp_paren_paren = remove # ignore/add/remove/force - -# Whether to balance spaces inside nested parens -sp_balance_nested_parens = false # false/true - -# Add or remove space between ')' and '{' -sp_paren_brace = force # ignore/add/remove/force - -# Add or remove space before pointer star '*' -sp_before_ptr_star = remove # ignore/add/remove/force - -# Add or remove space before pointer star '*' that isn't followed by a variable name -# If set to 'ignore', sp_before_ptr_star is used instead. -sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force - -# Add or remove space between pointer stars '*' -sp_between_ptr_star = remove # ignore/add/remove/force - -# Add or remove space after pointer star '*', if followed by a word. -sp_after_ptr_star = force # ignore/add/remove/force - -# Add or remove space after a pointer star '*', if followed by a func proto/def. -sp_after_ptr_star_func = remove # ignore/add/remove/force - -# Add or remove space before a pointer star '*', if followed by a func proto/def. -sp_before_ptr_star_func = force # ignore/add/remove/force - -# Add or remove space before a reference sign '&' -sp_before_byref = force # ignore/add/remove/force - -# Add or remove space before a reference sign '&' that isn't followed by a variable name -# If set to 'ignore', sp_before_byref is used instead. -sp_before_unnamed_byref = ignore # ignore/add/remove/force - -# Add or remove space after reference sign '&', if followed by a word. -sp_after_byref = remove # ignore/add/remove/force - -# Add or remove space after a reference sign '&', if followed by a func proto/def. -sp_after_byref_func = remove # ignore/add/remove/force - -# Add or remove space before a reference sign '&', if followed by a func proto/def. -sp_before_byref_func = force # ignore/add/remove/force - -# Add or remove space between type and word. Default=Force -sp_after_type = force # ignore/add/remove/force - -# Add or remove space in 'template <' vs 'template<'. -# If set to ignore, sp_before_angle is used. -sp_template_angle = force # ignore/add/remove/force - -# Add or remove space before '<>' -sp_before_angle = force # ignore/add/remove/force - -# Add or remove space inside '<' and '>' -sp_inside_angle = remove # ignore/add/remove/force - -# Add or remove space after '<>' -sp_after_angle = remove # ignore/add/remove/force - -# Add or remove space between '<>' and '(' as found in 'new List();' -sp_angle_paren = remove # ignore/add/remove/force - -# Add or remove space between '<>' and a word as in 'List m;' -sp_angle_word = force # ignore/add/remove/force - -# Add or remove space between '>' and '>' in '>>' (template stuff C++/C# only). Default=Add -sp_angle_shift = add # ignore/add/remove/force - -# Add or remove space before '(' of 'if', 'for', 'switch', and 'while' -sp_before_sparen = force # ignore/add/remove/force - -# Add or remove space inside if-condition '(' and ')' -sp_inside_sparen = remove # ignore/add/remove/force - -# Add or remove space before if-condition ')'. Overrides sp_inside_sparen. -sp_inside_sparen_close = ignore # ignore/add/remove/force - -# Add or remove space after ')' of 'if', 'for', 'switch', and 'while' -sp_after_sparen = force # ignore/add/remove/force - -# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while' -sp_sparen_brace = force # ignore/add/remove/force - -# Add or remove space between 'invariant' and '(' in the D language. -sp_invariant_paren = force # ignore/add/remove/force - -# Add or remove space after the ')' in 'invariant (C) c' in the D language. -sp_after_invariant_paren = force # ignore/add/remove/force - -# Add or remove space before empty statement ';' on 'if', 'for' and 'while' -sp_special_semi = force # ignore/add/remove/force - -# Add or remove space before ';'. Default=Remove -sp_before_semi = remove # ignore/add/remove/force - -# Add or remove space before ';' in non-empty 'for' statements -sp_before_semi_for = remove # ignore/add/remove/force - -# Add or remove space before a semicolon of an empty part of a for statement. -sp_before_semi_for_empty = remove # ignore/add/remove/force - -# Add or remove space after ';', except when followed by a comment. Default=Add -sp_after_semi = force # ignore/add/remove/force - -# Add or remove space after ';' in non-empty 'for' statements. Default=Force -sp_after_semi_for = force # ignore/add/remove/force - -# Add or remove space after the final semicolon of an empty part of a for statement: for ( ; ; ). -sp_after_semi_for_empty = force # ignore/add/remove/force - -# Add or remove space before '[' (except '[]') -sp_before_square = ignore # ignore/add/remove/force - -# Add or remove space before '[]' -sp_before_squares = remove # ignore/add/remove/force - -# Add or remove space inside a non-empty '[' and ']' -sp_inside_square = remove # ignore/add/remove/force - -# Add or remove space after ',' -sp_after_comma = force # ignore/add/remove/force - -# Add or remove space before ',' -sp_before_comma = remove # ignore/add/remove/force - -# Add or remove space between an open paren and comma: '(,' vs '( ,' -sp_paren_comma = force # ignore/add/remove/force - -# Add or remove space before the variadic '...' when preceded by a non-punctuator -sp_before_ellipsis = force # ignore/add/remove/force - -# Add or remove space after class ':' -sp_after_class_colon = force # ignore/add/remove/force - -# Add or remove space before class ':' -sp_before_class_colon = force # ignore/add/remove/force - -# Add or remove space before case ':'. Default=Remove -sp_before_case_colon = remove # ignore/add/remove/force - -# Add or remove space between 'operator' and operator sign -sp_after_operator = force # ignore/add/remove/force - -# Add or remove space between the operator symbol and the open paren, as in 'operator ++(' -sp_after_operator_sym = remove # ignore/add/remove/force - -# Add or remove space after C/D cast, i.e. 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a' -sp_after_cast = remove # ignore/add/remove/force - -# Add or remove spaces inside cast parens -sp_inside_paren_cast = remove # ignore/add/remove/force - -# Add or remove space between the type and open paren in a C++ cast, i.e. 'int(exp)' vs 'int (exp)' -sp_cpp_cast_paren = remove # ignore/add/remove/force - -# Add or remove space between 'sizeof' and '(' -sp_sizeof_paren = remove # ignore/add/remove/force - -# Add or remove space after the tag keyword (Pawn) -sp_after_tag = ignore # ignore/add/remove/force - -# Add or remove space inside enum '{' and '}' -sp_inside_braces_enum = remove # ignore/add/remove/force - -# Add or remove space inside struct/union '{' and '}' -sp_inside_braces_struct = remove # ignore/add/remove/force - -# Add or remove space inside '{' and '}' -sp_inside_braces = remove # ignore/add/remove/force - -# Add or remove space inside '{}' -sp_inside_braces_empty = remove # ignore/add/remove/force - -# Add or remove space between return type and function name -# A minimum of 1 is forced except for pointer return types. -sp_type_func = remove # ignore/add/remove/force - -# Add or remove space between function name and '(' on function declaration -sp_func_proto_paren = remove # ignore/add/remove/force - -# Add or remove space between function name and '(' on function definition -sp_func_def_paren = remove # ignore/add/remove/force - -# Add or remove space inside empty function '()' -sp_inside_fparens = remove # ignore/add/remove/force - -# Add or remove space inside function '(' and ')' -sp_inside_fparen = remove # ignore/add/remove/force - -# Add or remove space between ']' and '(' when part of a function call. -sp_square_fparen = remove # ignore/add/remove/force - -# Add or remove space between ')' and '{' of function -sp_fparen_brace = force # ignore/add/remove/force - -# Add or remove space between function name and '(' on function calls -sp_func_call_paren = remove # ignore/add/remove/force - -# Add or remove space between function name and '()' on function calls without parameters. -# If set to 'ignore' (the default), sp_func_call_paren is used. -sp_func_call_paren_empty = remove # ignore/add/remove/force - -# Add or remove space between the user function name and '(' on function calls -# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file. -sp_func_call_user_paren = remove # ignore/add/remove/force - -# Add or remove space between a constructor/destructor and the open paren -sp_func_class_paren = remove # ignore/add/remove/force - -# Add or remove space between 'return' and '(' -sp_return_paren = force # ignore/add/remove/force - -# Add or remove space between '__attribute__' and '(' -sp_attribute_paren = remove # ignore/add/remove/force - -# Add or remove space between 'defined' and '(' in '#if defined (FOO)' -sp_defined_paren = remove # ignore/add/remove/force - -# Add or remove space between 'throw' and '(' in 'throw (something)' -sp_throw_paren = remove # ignore/add/remove/force - -# Add or remove space between 'catch' and '(' in 'catch (something) { }' -# If set to ignore, sp_before_sparen is used. -sp_catch_paren = remove # ignore/add/remove/force - -# Add or remove space between 'version' and '(' in 'version (something) { }' (D language) -# If set to ignore, sp_before_sparen is used. -sp_version_paren = remove # ignore/add/remove/force - -# Add or remove space between 'scope' and '(' in 'scope (something) { }' (D language) -# If set to ignore, sp_before_sparen is used. -sp_scope_paren = remove # ignore/add/remove/force - -# Add or remove space between macro and value -sp_macro = remove # ignore/add/remove/force - -# Add or remove space between macro function ')' and value -sp_macro_func = remove # ignore/add/remove/force - -# Add or remove space between 'else' and '{' if on the same line -sp_else_brace = force # ignore/add/remove/force - -# Add or remove space between '}' and 'else' if on the same line -sp_brace_else = force # ignore/add/remove/force - -# Add or remove space between '}' and the name of a typedef on the same line -sp_brace_typedef = force # ignore/add/remove/force - -# Add or remove space between 'catch' and '{' if on the same line -sp_catch_brace = force # ignore/add/remove/force - -# Add or remove space between '}' and 'catch' if on the same line -sp_brace_catch = force # ignore/add/remove/force - -# Add or remove space between 'finally' and '{' if on the same line -sp_finally_brace = force # ignore/add/remove/force - -# Add or remove space between '}' and 'finally' if on the same line -sp_brace_finally = force # ignore/add/remove/force - -# Add or remove space between 'try' and '{' if on the same line -sp_try_brace = force # ignore/add/remove/force - -# Add or remove space between get/set and '{' if on the same line -sp_getset_brace = force # ignore/add/remove/force - -# Add or remove space before the '::' operator -sp_before_dc = remove # ignore/add/remove/force - -# Add or remove space after the '::' operator -sp_after_dc = remove # ignore/add/remove/force - -# Add or remove around the D named array initializer ':' operator -sp_d_array_colon = remove # ignore/add/remove/force - -# Add or remove space after the '!' (not) operator. Default=Remove -sp_not = remove # ignore/add/remove/force - -# Add or remove space after the '~' (invert) operator. Default=Remove -sp_inv = remove # ignore/add/remove/force - -# Add or remove space after the '&' (address-of) operator. Default=Remove -# This does not affect the spacing after a '&' that is part of a type. -sp_addr = remove # ignore/add/remove/force - -# Add or remove space around the '.' or '->' operators. Default=Remove -sp_member = remove # ignore/add/remove/force - -# Add or remove space after the '*' (dereference) operator. Default=Remove -# This does not affect the spacing after a '*' that is part of a type. -sp_deref = remove # ignore/add/remove/force - -# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'. Default=Remove -sp_sign = remove # ignore/add/remove/force - -# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'. Default=Remove -sp_incdec = remove # ignore/add/remove/force - -# Add or remove space before a backslash-newline at the end of a line. Default=Add -sp_before_nl_cont = force # ignore/add/remove/force - -# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;' -sp_after_oc_scope = force # ignore/add/remove/force - -# Add or remove space after the colon in message specs -# '-(int) f:(int) x;' vs '-(int) f: (int) x;' -sp_after_oc_colon = remove # ignore/add/remove/force - -# Add or remove space before the colon in message specs -# '-(int) f: (int) x;' vs '-(int) f : (int) x;' -sp_before_oc_colon = remove # ignore/add/remove/force - -# Add or remove space after the colon in message specs -# '[object setValue:1];' vs '[object setValue: 1];' -sp_after_send_oc_colon = remove # ignore/add/remove/force - -# Add or remove space before the colon in message specs -# '[object setValue:1];' vs '[object setValue :1];' -sp_before_send_oc_colon = remove # ignore/add/remove/force - -# Add or remove space after the (type) in message specs -# '-(int)f: (int) x;' vs '-(int)f: (int)x;' -sp_after_oc_type = remove # ignore/add/remove/force - -# Add or remove space after the first (type) in message specs -# '-(int) f:(int)x;' vs '-(int)f:(int)x;' -sp_after_oc_return_type = remove # ignore/add/remove/force - -# Add or remove space between '@selector' and '(' -# '@selector(msgName)' vs '@selector (msgName)' -# Also applies to @protocol() constructs -sp_after_oc_at_sel = remove # ignore/add/remove/force - -# Add or remove space between '@selector(x)' and the following word -# '@selector(foo) a:' vs '@selector(foo)a:' -sp_after_oc_at_sel_parens = force # ignore/add/remove/force - -# Add or remove space inside '@selector' parens -# '@selector(foo)' vs '@selector( foo )' -# Also applies to @protocol() constructs -sp_inside_oc_at_sel_parens = remove # ignore/add/remove/force - -# Add or remove space before a block pointer caret -# '^int (int arg){...}' vs. ' ^int (int arg){...}' -sp_before_oc_block_caret = ignore # ignore/add/remove/force - -# Add or remove space after a block pointer caret -# '^int (int arg){...}' vs. '^ int (int arg){...}' -sp_after_oc_block_caret = ignore # ignore/add/remove/force - -# Add or remove space around the ':' in 'b ? t : f' -sp_cond_colon = add # ignore/add/remove/force - -# Add or remove space around the '?' in 'b ? t : f' -sp_cond_question = add # ignore/add/remove/force - -# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here. -sp_case_label = ignore # ignore/add/remove/force - -# Control the space around the D '..' operator. -sp_range = ignore # ignore/add/remove/force - -# Control the space after the opening of a C++ comment '// A' vs '//A' -sp_cmt_cpp_start = add # ignore/add/remove/force - -# Controls the spaces between #else or #endif and a trailing comment -sp_endif_cmt = ignore # ignore/add/remove/force - -# Controls the spaces after 'new', 'delete', and 'delete[]' -sp_after_new = ignore # ignore/add/remove/force - -# Controls the spaces before a trailing or embedded comment -sp_before_tr_emb_cmt = ignore # ignore/add/remove/force - -# Number of spaces before a trailing or embedded comment -sp_num_before_tr_emb_cmt = 0 # number - -# -# Code alignment (not left column spaces/tabs) -# - -# Whether to keep non-indenting tabs -align_keep_tabs = false # false/true - -# Whether to use tabs for aligning -align_with_tabs = false # false/true - -# Whether to bump out to the next tab when aligning -align_on_tabstop = false # false/true - -# Whether to left-align numbers -align_number_left = false # false/true - -# Align variable definitions in prototypes and functions -align_func_params = true # false/true - -# Align parameters in single-line functions that have the same name. -# The function names must already be aligned with each other. -align_same_func_call_params = false # false/true - -# The span for aligning variable definitions (0=don't align) -align_var_def_span = 0 # number - -# How to align the star in variable definitions. -# 0=Part of the type 'void * foo;' -# 1=Part of the variable 'void *foo;' -# 2=Dangling 'void *foo;' -align_var_def_star_style = 1 # number - -# How to align the '&' in variable definitions. -# 0=Part of the type -# 1=Part of the variable -# 2=Dangling -align_var_def_amp_style = 2 # number - -# The threshold for aligning variable definitions (0=no limit) -align_var_def_thresh = 0 # number - -# The gap for aligning variable definitions -align_var_def_gap = 0 # number - -# Whether to align the colon in struct bit fields -align_var_def_colon = true # false/true - -# Whether to align any attribute after the variable name -align_var_def_attribute = false # false/true - -# Whether to align inline struct/enum/union variable definitions -align_var_def_inline = true # false/true - -# The span for aligning on '=' in assignments (0=don't align) -align_assign_span = 0 # number - -# The threshold for aligning on '=' in assignments (0=no limit) -align_assign_thresh = 12 # number - -# The span for aligning on '=' in enums (0=don't align) -align_enum_equ_span = 16 # number - -# The threshold for aligning on '=' in enums (0=no limit) -align_enum_equ_thresh = 0 # number - -# The span for aligning struct/union (0=don't align) -align_var_struct_span = 99 # number - -# The threshold for aligning struct/union member definitions (0=no limit) -align_var_struct_thresh = 0 # number - -# The gap for aligning struct/union member definitions -align_var_struct_gap = 0 # number - -# The span for aligning struct initializer values (0=don't align) -align_struct_init_span = 3 # number - -# The minimum space between the type and the synonym of a typedef -align_typedef_gap = 1 # number - -# The span for aligning single-line typedefs (0=don't align) -align_typedef_span = 5 # number - -# How to align typedef'd functions with other typedefs -# 0: Don't mix them at all -# 1: align the open paren with the types -# 2: align the function type name with the other type names -align_typedef_func = 2 # number - -# Controls the positioning of the '*' in typedefs. Just try it. -# 0: Align on typedef type, ignore '*' -# 1: The '*' is part of type name: typedef int *pint; -# 2: The '*' is part of the type, but dangling: typedef int *pint; -align_typedef_star_style = 2 # number - -# Controls the positioning of the '&' in typedefs. Just try it. -# 0: Align on typedef type, ignore '&' -# 1: The '&' is part of type name: typedef int &pint; -# 2: The '&' is part of the type, but dangling: typedef int &pint; -align_typedef_amp_style = 2 # number - -# The span for aligning comments that end lines (0=don't align) -align_right_cmt_span = 0 # number - -# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment -align_right_cmt_mix = false # false/true - -# If a trailing comment is more than this number of columns away from the text it follows, -# it will qualify for being aligned. This has to be > 0 to do anything. -align_right_cmt_gap = 0 # number - -# Align trailing comment at or beyond column N; 'pulls in' comments as a bonus side effect (0=ignore) -align_right_cmt_at_col = 0 # number - -# The span for aligning function prototypes (0=don't align) -align_func_proto_span = 0 # number - -# Minimum gap between the return type and the function name. -align_func_proto_gap = 1 # number - -# Align function protos on the 'operator' keyword instead of what follows -align_on_operator = false # false/true - -# Whether to mix aligning prototype and variable declarations. -# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options. -align_mix_var_proto = true # false/true - -# Align single-line functions with function prototypes, uses align_func_proto_span -align_single_line_func = false # false/true - -# Aligning the open brace of single-line functions. -# Requires align_single_line_func=true, uses align_func_proto_span -align_single_line_brace = false # false/true - -# Gap for align_single_line_brace. -align_single_line_brace_gap = 0 # number - -# The span for aligning ObjC msg spec (0=don't align) -align_oc_msg_spec_span = 0 # number - -# Whether to align macros wrapped with a backslash and a newline. -# This will not work right if the macro contains a multi-line comment. -align_nl_cont = true # false/true - -# # Align macro functions and variables together -# align_pp_define_together = false # false/true - -# The minimum space between label and value of a preprocessor define -align_pp_define_gap = 1 # number - -# The span for aligning on '#define' bodies (0=don't align) -align_pp_define_span = 0 # number - -# Align lines that start with '<<' with previous '<<'. Default=true -align_left_shift = true # false/true - -# Span for aligning parameters in an Obj-C message call on the ':' (0=don't align) -align_oc_msg_colon_span = 1 # number - -# Aligning parameters in an Obj-C '+' or '-' declaration on the ':' -align_oc_decl_colon = true # false/true - -# -# Newline adding and removing options -# - -# Whether to collapse empty blocks between '{' and '}' -nl_collapse_empty_body = true # false/true - -# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };' -nl_assign_leave_one_liners = false # false/true - -# Don't split one-line braced statements inside a class xx { } body -nl_class_leave_one_liners = false # false/true - -# Don't split one-line enums: 'enum foo { BAR = 15 };' -nl_enum_leave_one_liners = false # false/true - -# Don't split one-line get or set functions -nl_getset_leave_one_liners = false # false/true - -# Don't split one-line function definitions - 'int foo() { return 0; }' -nl_func_leave_one_liners = false # false/true - -# Don't split one-line if/else statements - 'if(a) b++;' -nl_if_leave_one_liners = false # false/true - -# Add or remove newlines at the start of the file -nl_start_of_file = remove # ignore/add/remove/force - -# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force' -nl_start_of_file_min = 0 # number - -# Add or remove newline at the end of the file -nl_end_of_file = force # ignore/add/remove/force - -# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force') -nl_end_of_file_min = 1 # number - -# Add or remove newline between '=' and '{' -nl_assign_brace = ignore # ignore/add/remove/force - -# Add or remove newline between '=' and '[' (D only) -nl_assign_square = ignore # ignore/add/remove/force - -# Add or remove newline after '= [' (D only). Will also affect the newline before the ']' -nl_after_square_assign = ignore # ignore/add/remove/force - -# The number of blank lines after a block of variable definitions at the top of a function body -# 0 = No change (default) -nl_func_var_def_blk = 1 # number - -# The number of newlines before a block of typedefs -# 0 = No change (default) -# nl_typedef_blk_start = 0 # number - -# The number of newlines after a block of typedefs -# 0 = No change (default) -# nl_typedef_blk_end = 0 # number - -# The maximum consecutive newlines within a block of typedefs -# 0 = No change (default) -# nl_typedef_blk_in = 0 # number - -# The number of newlines before a block of variable definitions not at the top of a function body -# 0 = No change (default) -# nl_var_def_blk_start = 0 # number - -# The number of newlines after a block of variable definitions not at the top of a function body -# 0 = No change (default) -# nl_var_def_blk_end = 0 # number - -# The maximum consecutive newlines within a block of variable definitions -# 0 = No change (default) -# nl_var_def_blk_in = 0 # number - -# Add or remove newline between a function call's ')' and '{', as in: -# list_for_each(item, &list) { } -nl_fcall_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'enum' and '{' -nl_enum_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'struct and '{' -nl_struct_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'union' and '{' -nl_union_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'if' and '{' -nl_if_brace = remove # ignore/add/remove/force - -# Add or remove newline between '}' and 'else' -nl_brace_else = remove # ignore/add/remove/force - -# Add or remove newline between 'else if' and '{' -# If set to ignore, nl_if_brace is used instead -nl_elseif_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'else' and '{' -nl_else_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'else' and 'if' -nl_else_if = remove # ignore/add/remove/force - -# Add or remove newline between '}' and 'finally' -nl_brace_finally = ignore # ignore/add/remove/force - -# Add or remove newline between 'finally' and '{' -nl_finally_brace = ignore # ignore/add/remove/force - -# Add or remove newline between 'try' and '{' -nl_try_brace = ignore # ignore/add/remove/force - -# Add or remove newline between get/set and '{' -nl_getset_brace = ignore # ignore/add/remove/force - -# Add or remove newline between 'for' and '{' -nl_for_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'catch' and '{' -nl_catch_brace = ignore # ignore/add/remove/force - -# Add or remove newline between '}' and 'catch' -nl_brace_catch = ignore # ignore/add/remove/force - -# Add or remove newline between 'while' and '{' -nl_while_brace = remove # ignore/add/remove/force - -# Add or remove newline between 'using' and '{' -nl_using_brace = ignore # ignore/add/remove/force - -# Add or remove newline between two open or close braces. -# Due to general newline/brace handling, REMOVE may not work. -nl_brace_brace = ignore # ignore/add/remove/force - -# Add or remove newline between 'do' and '{' -nl_do_brace = remove # ignore/add/remove/force - -# Add or remove newline between '}' and 'while' of 'do' statement -nl_brace_while = remove # ignore/add/remove/force - -# Add or remove newline between 'switch' and '{' -nl_switch_brace = remove # ignore/add/remove/force - -# Add a newline between ')' and '{' if the ')' is on a different line than the if/for/etc. -# Overrides nl_for_brace, nl_if_brace, nl_switch_brace, nl_while_switch, and nl_catch_brace. -nl_multi_line_cond = false # false/true - -# Force a newline in a define after the macro name for multi-line defines. -nl_multi_line_define = false # false/true - -# Whether to put a newline before 'case' statement -nl_before_case = true # false/true - -# Add or remove newline between ')' and 'throw' -nl_before_throw = ignore # ignore/add/remove/force - -# Whether to put a newline after 'case' statement -nl_after_case = true # false/true - -# Add or remove a newline between a case ':' and '{'. Overrides nl_after_case. -nl_case_colon_brace = ignore # ignore/add/remove/force - -# Newline between namespace and { -nl_namespace_brace = ignore # ignore/add/remove/force - -# Add or remove newline between 'template<>' and whatever follows. -nl_template_class = ignore # ignore/add/remove/force - -# Add or remove newline between 'class' and '{' -nl_class_brace = ignore # ignore/add/remove/force - -# Add or remove newline after each ',' in the constructor member initialization -nl_class_init_args = ignore # ignore/add/remove/force - -# Add or remove newline between return type and function name in a function definition -nl_func_type_name = ignore # ignore/add/remove/force - -# Add or remove newline between return type and function name inside a class {} -# Uses nl_func_type_name or nl_func_proto_type_name if set to ignore. -nl_func_type_name_class = ignore # ignore/add/remove/force - -# Add or remove newline between function scope and name in a definition -# Controls the newline after '::' in 'void A::f() { }' -nl_func_scope_name = ignore # ignore/add/remove/force - -# Add or remove newline between return type and function name in a prototype -nl_func_proto_type_name = ignore # ignore/add/remove/force - -# Add or remove newline between a function name and the opening '(' -nl_func_paren = ignore # ignore/add/remove/force - -# Add or remove newline between a function name and the opening '(' in the definition -nl_func_def_paren = ignore # ignore/add/remove/force - -# Add or remove newline after '(' in a function declaration -nl_func_decl_start = ignore # ignore/add/remove/force - -# Add or remove newline after '(' in a function definition -nl_func_def_start = ignore # ignore/add/remove/force - -# Overrides nl_func_decl_start when there is only one parameter. -nl_func_decl_start_single = ignore # ignore/add/remove/force - -# Overrides nl_func_def_start when there is only one parameter. -nl_func_def_start_single = ignore # ignore/add/remove/force - -# Add or remove newline after each ',' in a function declaration -nl_func_decl_args = ignore # ignore/add/remove/force - -# Add or remove newline after each ',' in a function definition -nl_func_def_args = ignore # ignore/add/remove/force - -# Add or remove newline before the ')' in a function declaration -nl_func_decl_end = ignore # ignore/add/remove/force - -# Add or remove newline before the ')' in a function definition -nl_func_def_end = ignore # ignore/add/remove/force - -# Overrides nl_func_decl_end when there is only one parameter. -nl_func_decl_end_single = ignore # ignore/add/remove/force - -# Overrides nl_func_def_end when there is only one parameter. -nl_func_def_end_single = ignore # ignore/add/remove/force - -# Add or remove newline between '()' in a function declaration. -nl_func_decl_empty = ignore # ignore/add/remove/force - -# Add or remove newline between '()' in a function definition. -nl_func_def_empty = ignore # ignore/add/remove/force - -# Add or remove newline between function signature and '{' -nl_fdef_brace = force # ignore/add/remove/force - -# Whether to put a newline after 'return' statement -nl_after_return = true # false/true - -# Add or remove a newline between the return keyword and return expression. -nl_return_expr = ignore # ignore/add/remove/force - -# Whether to put a newline after semicolons, except in 'for' statements -nl_after_semicolon = false # false/true - -# Whether to put a newline after brace open. -# This also adds a newline before the matching brace close. -nl_after_brace_open = false # false/true - -# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is -# placed between the open brace and a trailing single-line comment. -nl_after_brace_open_cmt = false # false/true - -# Whether to put a newline after a virtual brace open with a non-empty body. -# These occur in un-braced if/while/do/for statement bodies. -nl_after_vbrace_open = false # false/true - -# Whether to put a newline after a virtual brace open with an empty body. -# These occur in un-braced if/while/do/for statement bodies. -nl_after_vbrace_open_empty = false # false/true - -# Whether to put a newline after a brace close. -# Does not apply if followed by a necessary ';'. -nl_after_brace_close = false # false/true - -# Whether to put a newline after a virtual brace close. -# Would add a newline before return in: 'if (foo) a++; return;' -nl_after_vbrace_close = false # false/true - -# Whether to alter newlines in '#define' macros -nl_define_macro = true # false/true - -# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif' -nl_squeeze_ifdef = true # false/true - -# Add or remove blank line before 'if' -nl_before_if = ignore # ignore/add/remove/force - -# Add or remove blank line after 'if' statement -nl_after_if = ignore # ignore/add/remove/force - -# Add or remove blank line before 'for' -nl_before_for = force # ignore/add/remove/force - -# Add or remove blank line after 'for' statement -nl_after_for = force # ignore/add/remove/force - -# Add or remove blank line before 'while' -nl_before_while = force # ignore/add/remove/force - -# Add or remove blank line after 'while' statement -nl_after_while = force # ignore/add/remove/force - -# Add or remove blank line before 'switch' -nl_before_switch = ignore # ignore/add/remove/force - -# Add or remove blank line after 'switch' statement -nl_after_switch = ignore # ignore/add/remove/force - -# Add or remove blank line before 'do' -nl_before_do = ignore # ignore/add/remove/force - -# Add or remove blank line after 'do/while' statement -nl_after_do = ignore # ignore/add/remove/force - -# Whether to double-space commented-entries in struct/enum -nl_ds_struct_enum_cmt = false # false/true - -# Whether to double-space before the close brace of a struct/union/enum -# (lower priority than 'eat_blanks_before_close_brace') -nl_ds_struct_enum_close_brace = false # false/true - -# Add or remove a newline around a class colon. -# Related to pos_class_colon, nl_class_init_args, and pos_comma. -nl_class_colon = ignore # ignore/add/remove/force - -# Change simple unbraced if statements into a one-liner -# 'if(b)\n i++;' => 'if(b) i++;' -nl_create_if_one_liner = false # false/true - -# Change simple unbraced for statements into a one-liner -# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);' -nl_create_for_one_liner = false # false/true - -# Change simple unbraced while statements into a one-liner -# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);' -nl_create_while_one_liner = false # false/true - -# -# Positioning options -# - -# The position of arithmetic operators in wrapped expressions -pos_arith = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of assignment in wrapped expressions. -# Do not affect '=' followed by '{' -pos_assign = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of boolean operators in wrapped expressions -pos_bool = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of comparison operators in wrapped expressions -pos_compare = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of conditional (b ? t : f) operators in wrapped expressions -pos_conditional = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of the comma in wrapped expressions -pos_comma = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of the comma in the constructor initialization list -pos_class_comma = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# The position of colons between constructor and member initialization -pos_class_colon = ignore # ignore/join/lead/lead_break/lead_force/trail/trail_break/trail_force - -# -# Line Splitting options -# - -# Try to limit code width to N number of columns -code_width = 0 # number - -# Whether to fully split long 'for' statements at semi-colons -ls_for_split_full = false # false/true - -# Whether to fully split long function protos/calls at commas -ls_func_split_full = true # false/true - -# Whether to split lines as close to code_width as possible and ignore some groupings -# ls_code_width = false # false/true - -# -# Blank line options -# - -# The maximum consecutive newlines -nl_max = 2 # number - -# The number of newlines after a function prototype, if followed by another function prototype -nl_after_func_proto = 2 # number - -# The number of newlines after a function prototype, if not followed by another function prototype -nl_after_func_proto_group = 2 # number - -# The number of newlines after '}' of a multi-line function body -nl_after_func_body = 2 # number - -# The number of newlines after '}' of a multi-line function body in a class declaration -nl_after_func_body_class = 0 # number - -# The number of newlines after '}' of a single line function body -nl_after_func_body_one_liner = 2 # number - -# The minimum number of newlines before a multi-line comment. -# Doesn't apply if after a brace open or another multi-line comment. -nl_before_block_comment = 2 # number - -# The minimum number of newlines before a single-line C comment. -# Doesn't apply if after a brace open or other single-line C comments. -nl_before_c_comment = 1 # number - -# The minimum number of newlines before a CPP comment. -# Doesn't apply if after a brace open or other CPP comments. -nl_before_cpp_comment = 1 # number - -# Whether to force a newline after a multi-line comment. -nl_after_multiline_comment = false # false/true - -# The number of newlines after '}' or ';' of a struct/enum/union definition -nl_after_struct = 0 # number - -# The number of newlines after '}' or ';' of a class definition -nl_after_class = 0 # number - -# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label. -# Will not change the newline count if after a brace open. -# 0 = No change. -nl_before_access_spec = 0 # number - -# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label. -# 0 = No change. -nl_after_access_spec = 0 # number - -# The number of newlines between a function def and the function comment. -# 0 = No change. -nl_comment_func_def = 1 # number - -# The number of newlines after a try-catch-finally block that isn't followed by a brace close. -# 0 = No change. -nl_after_try_catch_finally = 2 # number - -# The number of newlines before and after a property, indexer or event decl. -# 0 = No change. -nl_around_cs_property = 0 # number - -# The number of newlines between the get/set/add/remove handlers in C#. -# 0 = No change. -nl_between_get_set = 0 # number - -# Add or remove newline between C# property and the '{' -nl_property_brace = ignore # ignore/add/remove/force - -# Whether to remove blank lines after '{' -eat_blanks_after_open_brace = true # false/true - -# Whether to remove blank lines before '}' -eat_blanks_before_close_brace = true # false/true - -# How aggressively to remove extra newlines not in preproc. -# 0: No change -# 1: Remove most newlines not handled by other config -# 2: Remove all newlines and reformat completely by config -# nl_remove_extra_newlines = 0 # number - -# -# Code modifying options (non-whitespace) -# - -# Add or remove braces on single-line 'do' statement -mod_full_brace_do = add # ignore/add/remove/force - -# Add or remove braces on single-line 'for' statement -mod_full_brace_for = add # ignore/add/remove/force - -# Add or remove braces on single-line function definitions. (Pawn) -mod_full_brace_function = ignore # ignore/add/remove/force - -# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'. -mod_full_brace_if = add # ignore/add/remove/force - -# Make all if/elseif/else statements in a chain be braced or not. Overrides mod_full_brace_if. -# If any must be braced, they are all braced. If all can be unbraced, then the braces are removed. -mod_full_brace_if_chain = false # false/true - -# Don't remove braces around statements that span N newlines -mod_full_brace_nl = 0 # number - -# Add or remove braces on single-line 'while' statement -mod_full_brace_while = add # ignore/add/remove/force - -# Add or remove braces on single-line 'using ()' statement -mod_full_brace_using = ignore # ignore/add/remove/force - -# Add or remove unnecessary paren on 'return' statement -mod_paren_on_return = remove # ignore/add/remove/force - -# Whether to change optional semicolons to real semicolons -mod_pawn_semicolon = false # false/true - -# Add parens on 'while' and 'if' statement around bools -mod_full_paren_if_bool = true # false/true - -# Whether to remove superfluous semicolons -mod_remove_extra_semicolon = true # false/true - -# If a function body exceeds the specified number of newlines and doesn't have a comment after -# the close brace, a comment will be added. -mod_add_long_function_closebrace_comment = 0 # number - -# If a switch body exceeds the specified number of newlines and doesn't have a comment after -# the close brace, a comment will be added. -mod_add_long_switch_closebrace_comment = 0 # number - -# If an #ifdef body exceeds the specified number of newlines and doesn't have a comment after -# the #endif, a comment will be added. -mod_add_long_ifdef_endif_comment = 20 # number - -# If an #ifdef or #else body exceeds the specified number of newlines and doesn't have a comment after -# the #else, a comment will be added. -mod_add_long_ifdef_else_comment = 0 # number - -# If TRUE, will sort consecutive single-line 'import' statements [Java, D] -mod_sort_import = false # false/true - -# If TRUE, will sort consecutive single-line 'using' statements [C#] -mod_sort_using = false # false/true - -# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C] -# This is generally a bad idea, as it may break your code. -mod_sort_include = false # false/true - -# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace. -mod_move_case_break = false # false/true - -# Will add or remove the braces around a fully braced case statement. -# Will only remove the braces if there are no variable declarations in the block. -mod_case_brace = ignore # ignore/add/remove/force - -# If TRUE, it will remove a void 'return;' that appears as the last statement in a function. -mod_remove_empty_return = true # false/true - -# -# Comment modifications -# - -# Try to wrap comments at cmt_width columns -cmt_width = 0 # number - -# Set the comment reflow mode (default: 0) -# 0: no reflowing (apart from the line wrapping due to cmt_width) -# 1: no touching at all -# 2: full reflow -cmt_reflow_mode = 0 # number - -# If false, disable all multi-line comment changes, including cmt_width. keyword substitution, and leading chars. -# Default is true. -cmt_indent_multi = false # false/true - -# Whether to group c-comments that look like they are in a block -cmt_c_group = false # false/true - -# Whether to put an empty '/*' on the first line of the combined c-comment -cmt_c_nl_start = false # false/true - -# Whether to put a newline before the closing '*/' of the combined c-comment -cmt_c_nl_end = true # false/true - -# Whether to group cpp-comments that look like they are in a block -cmt_cpp_group = false # false/true - -# Whether to put an empty '/*' on the first line of the combined cpp-comment -cmt_cpp_nl_start = false # false/true - -# Whether to put a newline before the closing '*/' of the combined cpp-comment -cmt_cpp_nl_end = true # false/true - -# Whether to change cpp-comments into c-comments -cmt_cpp_to_c = false # false/true - -# Whether to put a star on subsequent comment lines -cmt_star_cont = true # false/true - -# The number of spaces to insert at the start of subsequent comment lines -cmt_sp_before_star_cont = 0 # number - -# The number of spaces to insert after the star on subsequent comment lines -cmt_sp_after_star_cont = 2 # number - -# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of -# the comment are the same length. Default=True -cmt_multi_check_last = true # false/true - -# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment. -# Will substitute $(filename) with the current file's name. -cmt_insert_file_header = "" # string - -# The filename that contains text to insert at the end of a file if the file doesn't end with a C/C++ comment. -# Will substitute $(filename) with the current file's name. -cmt_insert_file_footer = "" # string - -# The filename that contains text to insert before a function implementation if the function isn't preceded with a C/C++ comment. -# Will substitute $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff. -# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... } -cmt_insert_func_header = "" # string - -# The filename that contains text to insert before a class if the class isn't preceded with a C/C++ comment. -# Will substitute $(class) with the class name. -cmt_insert_class_header = "" # string - -# The filename that contains text to insert before a Obj-C message specification if the method isn't preceded with a C/C++ comment. -# Will substitute $(message) with the function name and $(javaparam) with the javadoc @param and @return stuff. -cmt_insert_oc_msg_header = "" # string - -# If a preprocessor is encountered when stepping backwards from a function name, then -# this option decides whether the comment should be inserted. -# Affects cmt_insert_oc_msg_header, cmt_insert_func_header and cmt_insert_class_header. -cmt_insert_before_preproc = false # false/true - -# -# Preprocessor options -# - -# Control indent of preprocessors inside #if blocks at brace level 0 -pp_indent = add # ignore/add/remove/force - -# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false) -pp_indent_at_level = false # false/true - -# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1. -pp_indent_count = 4 # number - -# Add or remove space after # based on pp_level of #if blocks -pp_space = remove # ignore/add/remove/force - -# Sets the number of spaces added with pp_space -pp_space_count = 0 # number - -# The indent for #region and #endregion in C# and '#pragma region' in C/C++ -pp_indent_region = 0 # number - -# Whether to indent the code between #region and #endregion -pp_region_indent_code = false # false/true - -# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level -pp_indent_if = 1 # number - -# Control whether to indent the code between #if, #else and #endif when not at file-level -pp_if_indent_code = true # false/true - -# Whether to indent '#define' at the brace level (true) or from column 1 (false) -pp_define_at_level = false # false/true - -# You can force a token to be a type with the 'type' option. -# Example: -# type myfoo1 myfoo2 -# -# You can create custom macro-based indentation using macro-open, -# macro-else and macro-close. -# Example: -# macro-open BEGIN_TEMPLATE_MESSAGE_MAP -# macro-open BEGIN_MESSAGE_MAP -# macro-close END_MESSAGE_MAP -# -# You can assign any keyword to any type with the set option. -# set func_call_user _ N_ -# -# The full syntax description of all custom definition config entries -# is shown below: -# -# define custom tokens as: -# - embed whitespace in token using '' escape character, or -# put token in quotes -# - these: ' " and ` are recognized as quote delimiters -# -# type token1 token2 token3 ... -# ^ optionally specify multiple tokens on a single line -# define def_token output_token -# ^ output_token is optional, then NULL is assumed -# macro-open token -# macro-close token -# macro-else token -# set id token1 token2 ... -# ^ optionally specify multiple tokens on a single line -# ^ id is one of the names in token_enum.h sans the CT_ prefix, -# e.g. PP_PRAGMA -# -# all tokens are separated by any mix of ',' commas, '=' equal signs -# and whitespace (space, tab) -# -set FUNC_CALL_USER theObject -set FUNC_CALL_USER theValue diff --git a/bin/uncrustify.sh b/bin/uncrustify.sh deleted file mode 100755 index 2c37fb696..000000000 --- a/bin/uncrustify.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash - -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -SCRIPT_PATH=$(dirname $0) -CONFIG="$SCRIPT_PATH/uncrustify.cfg" -EXE="$SCRIPT_PATH/../node_modules/.bin/uncrustify" - -function Usage() { - echo "Formats code using uncrustify." - echo "Usage: bin/uncrustify.sh --changed # Runs on changed (staged or not) files" - echo " bin/uncrustify.sh --staged # Runs on staged files" - echo " bin/uncrustify.sh --all # Runs on all source files under the current directory" - echo " bin/uncrustify.sh --check-file file # Returns 1 if the given file requires changes, 0 otherwise." - echo " bin/uncrustify.sh files # Runs on the given files" - exit 1 -} - -function VerifyEnv() { - if ! which "$EXE" > /dev/null; then - echo "uncrustify binary not found in the cordova-ios repo." - echo "In the repo root, install via npm: npm install" - exit 1 - fi -} - -function FilterFileList() { -#-name "*.[hm]" | grep -v "JSONKit" -#| grep "\.h\|\.m" - for f in "$@"; do - # Filter out deleted files. - [[ ! -e "$f" ]] && continue - # Filter out non .h & .m files. - [[ "$f" != *.[hm] ]] && continue - # Filter out Third-party sources. - [[ "$f" == *JSONKit* ]] && continue - echo $f - done -} - -function FilterAndRun() { - files=$(FilterFileList "$@") - - if [[ -z "$files" ]]; then - echo No files to uncrustify. - exit 2 - else - echo "$files" | xargs uncrustify -l OC --no-backup -c "$CONFIG" - fi -} - -if [[ "$1" = "--changed" ]]; then - VerifyEnv - files=$(git status --porcelain | sed s:...::) - FilterAndRun $files -elif [[ "$1" = "--staged" ]]; then - VerifyEnv - files=$(git diff --cached --name-only) - FilterAndRun $files -elif [[ "$1" = "--all" ]]; then - VerifyEnv - files=$(find .) - FilterAndRun $files -elif [[ "$1" = "--check-file" ]]; then - "$EXE" -q -l OC -c "$CONFIG" -f "$2" | cmp --quiet - "$2" -elif [[ "$1" = "--filter" ]]; then - FilterFileList "$@" -elif [[ "$1" = -* ]]; then - Usage -else - VerifyEnv - FilterAndRun "$@" -fi From 5e153ad7d30e7bdcd1a1c1a434d82afdef3faa49 Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 20:17:14 +0900 Subject: [PATCH 14/24] refactor!: remove binary help methods for build & run --- bin/templates/scripts/cordova/lib/build.js | 35 ---------------------- bin/templates/scripts/cordova/lib/run.js | 23 -------------- tests/spec/unit/build.spec.js | 10 ------- 3 files changed, 68 deletions(-) diff --git a/bin/templates/scripts/cordova/lib/build.js b/bin/templates/scripts/cordova/lib/build.js index ddcc4b6d0..db43ccc39 100644 --- a/bin/templates/scripts/cordova/lib/build.js +++ b/bin/templates/scripts/cordova/lib/build.js @@ -405,38 +405,3 @@ function parseBuildFlag (buildFlag, args) { } } } - -// help/usage function -module.exports.help = function help () { - console.log(''); - console.log('Usage: build [--debug | --release] [--archs=\"\"]'); - console.log(' [--device | --simulator] [--codeSignIdentity=\"\"]'); - console.log(' [--codeSignResourceRules=\"\"]'); - console.log(' [--developmentTeam=\"\"]'); - console.log(' [--provisioningProfile=\"\"]'); - console.log(' --help : Displays this dialog.'); - console.log(' --debug : Builds project in debug mode. (Default)'); - console.log(' --release : Builds project in release mode.'); - console.log(' -r : Shortcut :: builds project in release mode.'); - /* eslint-enable no-useless-escape */ - // TODO: add support for building different archs - // console.log(" --archs : Builds project binaries for specific chip architectures (`anycpu`, `arm`, `x86`, `x64`)."); - console.log(' --device, --simulator'); - console.log(' : Specifies, what type of project to build'); - console.log(' --codeSignIdentity : Type of signing identity used for code signing.'); - console.log(' --codeSignResourceRules : Path to ResourceRules.plist.'); - console.log(' --developmentTeam : New for Xcode 8. The development team (Team ID)'); - console.log(' to use for code signing.'); - console.log(' --provisioningProfile : UUID of the profile.'); - console.log(' --device --noSign : Builds project without application signing.'); - console.log(''); - console.log('examples:'); - console.log(' build '); - console.log(' build --debug'); - console.log(' build --release'); - console.log(' build --codeSignIdentity="iPhone Distribution" --provisioningProfile="926c2bd6-8de9-4c2f-8407-1016d2d12954"'); - // TODO: add support for building different archs - // console.log(" build --release --archs=\"armv7\""); - console.log(''); - process.exit(0); -}; diff --git a/bin/templates/scripts/cordova/lib/run.js b/bin/templates/scripts/cordova/lib/run.js index f7fd8c139..e4cd40952 100644 --- a/bin/templates/scripts/cordova/lib/run.js +++ b/bin/templates/scripts/cordova/lib/run.js @@ -235,26 +235,3 @@ function listEmulators () { }); }); } - -module.exports.help = () => { - console.log('\nUsage: run [ --device | [ --emulator [ --target= ] ] ] [ --debug | --release | --nobuild ]'); - // TODO: add support for building different archs - // console.log(" [ --archs=\"\" ] "); - console.log(' --device : Deploys and runs the project on the connected device.'); - console.log(' --emulator : Deploys and runs the project on an emulator.'); - console.log(' --target= : Deploys and runs the project on the specified target.'); - console.log(' --debug : Builds project in debug mode. (Passed down to build command, if necessary)'); - console.log(' --release : Builds project in release mode. (Passed down to build command, if necessary)'); - console.log(' --nobuild : Uses pre-built package, or errors if project is not built.'); - // TODO: add support for building different archs - // console.log(" --archs : Specific chip architectures (`anycpu`, `arm`, `x86`, `x64`)."); - console.log(''); - console.log('Examples:'); - console.log(' run'); - console.log(' run --device'); - console.log(' run --emulator --target=\"iPhone-6-Plus\"'); /* eslint no-useless-escape : 0 */ - console.log(' run --device --release'); - console.log(' run --emulator --debug'); - console.log(''); - process.exit(0); -}; diff --git a/tests/spec/unit/build.spec.js b/tests/spec/unit/build.spec.js index 7ecf40eac..638a8674a 100644 --- a/tests/spec/unit/build.spec.js +++ b/tests/spec/unit/build.spec.js @@ -311,16 +311,6 @@ describe('build', () => { }); }); - describe('help method', () => { - it('should log a bunch of options', () => { - spyOn(console, 'log'); - spyOn(process, 'exit'); - - build.help(); - expect(console.log).toHaveBeenCalledWith(jasmine.stringMatching(/^Usage:/)); - }); - }); - describe('run method', () => { beforeEach(() => { spyOn(Promise, 'reject'); From 4d993208d07d7563bf2b84e4f05d1122ec1dd9bd Mon Sep 17 00:00:00 2001 From: Erisu Date: Thu, 4 Nov 2021 20:19:34 +0900 Subject: [PATCH 15/24] refactor!: remove version.bat binary --- bin/templates/scripts/cordova/version.bat | 26 ----------------------- 1 file changed, 26 deletions(-) delete mode 100755 bin/templates/scripts/cordova/version.bat diff --git a/bin/templates/scripts/cordova/version.bat b/bin/templates/scripts/cordova/version.bat deleted file mode 100755 index 84c86b438..000000000 --- a/bin/templates/scripts/cordova/version.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script="%~dp0version" -IF EXIST %script% ( - node %script% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'version' script in 'cordova' folder, aborting...>&2 - EXIT /B 1 -) From 57dea230472430522befb4968b0bac327fc77f3e Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 12:31:30 +0900 Subject: [PATCH 16/24] fix: get realpathSync of os tmp dir --- tests/spec/create.spec.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/spec/create.spec.js b/tests/spec/create.spec.js index 48417aaba..4a3457d42 100644 --- a/tests/spec/create.spec.js +++ b/tests/spec/create.spec.js @@ -23,7 +23,10 @@ const path = require('path'); const xcode = require('xcode'); const create = require('../../bin/lib/create'); -const makeTempDir = () => path.join(os.tmpdir(), `cordova-ios-create-test-${Date.now()}`); +const makeTempDir = () => path.join( + fs.realpathSync(os.tmpdir()), + `cordova-ios-create-test-${Date.now()}` +); /** * Verifies that some of the project file exists. Not all will be tested. From 381ed72eccb1d3a40e21b0627c508090d6a72f88 Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 12:40:49 +0900 Subject: [PATCH 17/24] refactor: cleanup verify create & build methods --- tests/spec/create.spec.js | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/tests/spec/create.spec.js b/tests/spec/create.spec.js index 4a3457d42..f78a3dc21 100644 --- a/tests/spec/create.spec.js +++ b/tests/spec/create.spec.js @@ -68,26 +68,24 @@ function verifyBuild (tmpDir) { return new Api() .build({ emulator: true }) - .then( - () => { - expect(true).toBe(true); - }, - err => fail(`Project Build has failed and is not expected.: ${err}`) - ); + .then(() => { + expect(true).toBe(true); + }); } /** - * Runs various create and buid checks. + * Runs various create and build checks. * * @param {String} tmpDir * @param {String} packageName * @param {String} projectName - * @returns + * @returns {Promise} */ -function verifyCreateAndBuild (tmpDir, packageName, projectName) { - verifyProjectFiles(tmpDir, projectName); - verifyProjectBundleIdentifier(tmpDir, projectName, packageName); - return verifyBuild(tmpDir); +async function verifyCreateAndBuild (tmpDir, packageName, projectName) { + await create.createProject(tmpDir, packageName, projectName, {}, undefined) + .then(() => verifyProjectFiles(tmpDir, projectName)) + .then(() => verifyProjectBundleIdentifier(tmpDir, projectName, packageName)) + .then(() => verifyBuild(tmpDir)); } describe('create', () => { @@ -104,14 +102,12 @@ describe('create', () => { it('Test#001 : create project with ascii name, no spaces', () => { const packageName = 'com.test.app1'; const projectName = 'testcreate'; - return create.createProject(tmpDir, packageName, projectName, {}, undefined) - .then(() => verifyCreateAndBuild(tmpDir, packageName, projectName)); + return verifyCreateAndBuild(tmpDir, packageName, projectName); }, 240 * 1000); // first build takes longer (probably cold caches) it('Test#002 : create project with complicated name', () => { const packageName = 'com.test.app2'; const projectName = '応応応応 hello & إثرا 用用用用'; - return create.createProject(tmpDir, packageName, projectName, {}, undefined) - .then(() => verifyCreateAndBuild(tmpDir, packageName, projectName)); + return verifyCreateAndBuild(tmpDir, packageName, projectName); }, 120 * 1000); }); From 0808169e218073bc2fae7a46a663142a4457a817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=A8=E3=83=AA=E3=82=B9?= Date: Fri, 5 Nov 2021 21:03:50 +0900 Subject: [PATCH 18/24] refactor(create.spec): use expectAsync toBeResolved MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Raphael von der Grün --- tests/spec/create.spec.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/spec/create.spec.js b/tests/spec/create.spec.js index f78a3dc21..3e5b2397f 100644 --- a/tests/spec/create.spec.js +++ b/tests/spec/create.spec.js @@ -66,11 +66,8 @@ function verifyProjectBundleIdentifier (tmpDir, projectName, expectedBundleIdent function verifyBuild (tmpDir) { const Api = require(path.join(tmpDir, 'cordova/Api.js')); - return new Api() - .build({ emulator: true }) - .then(() => { - expect(true).toBe(true); - }); + return expectAsync(new Api().build({ emulator: true })) + .toBeResolved(); } /** From d0e7d59de9927c188455de0b770ecb4dc3990045 Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 21:06:02 +0900 Subject: [PATCH 19/24] refactor!: remove uncrustify pre-commit hook --- hooks/pre-commit | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100755 hooks/pre-commit diff --git a/hooks/pre-commit b/hooks/pre-commit deleted file mode 100755 index bcff748b6..000000000 --- a/hooks/pre-commit +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -PATH=$PATH:/usr/local/bin:/usr/local/sbin - -# Redirect output to stderr. -exec 1>&2 -test $SKIP_UNCRUSTIFY && exit 0 - -RET=0 -files=$(bin/uncrustify.sh --filter $(git diff --cached --name-only)) -MSGS= -for file in $files; do - if ! bin/uncrustify.sh --check-file $file; then - MSGS="$MSGS - bin/uncrustify.sh \"$file\" && git add \"$file\"" - RET=1 - fi -done - -if [[ $RET = 1 ]]; then - echo "Commit aborted because style fix-ups are required." - echo "Please run:$MSGS" - echo "Alternatively, run \"$PWD/bin/uncrustify.sh --staged\" and then re-stage affected files." -fi - -exit $RET - From e7e187762f837c48ba91fb17cd6a6ad9c4622bde Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 23:25:15 +0900 Subject: [PATCH 20/24] refactor!: remove list-emulator-build-targets binary --- .../cordova/lib/list-emulator-build-targets | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100755 bin/templates/scripts/cordova/lib/list-emulator-build-targets diff --git a/bin/templates/scripts/cordova/lib/list-emulator-build-targets b/bin/templates/scripts/cordova/lib/list-emulator-build-targets deleted file mode 100755 index 304c4c171..000000000 --- a/bin/templates/scripts/cordova/lib/list-emulator-build-targets +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const { run } = require('./listEmulatorBuildTargets'); - -run().then(targets => { - console.log(JSON.stringify(targets, null, 2)); -}); From e3f4d156d6c6b1707b24911dbddeb86880e73e36 Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 23:26:39 +0900 Subject: [PATCH 21/24] refactor!: remove list-started-emulators binary --- .../cordova/lib/list-started-emulators | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100755 bin/templates/scripts/cordova/lib/list-started-emulators diff --git a/bin/templates/scripts/cordova/lib/list-started-emulators b/bin/templates/scripts/cordova/lib/list-started-emulators deleted file mode 100755 index 7f06cf2e8..000000000 --- a/bin/templates/scripts/cordova/lib/list-started-emulators +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const { run } = require('./listStartedEmulators'); - -run().then(emulators => { - emulators.forEach(emulator => { - console.log(emulator); - }); -}); From cfaf4ff573f2eed107f3a1992c8d0a59e5f1496b Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 23:27:13 +0900 Subject: [PATCH 22/24] refactor!: remove start-emulator binary --- .eslintignore | 1 - .../scripts/cordova/lib/start-emulator | 30 ------------------- 2 files changed, 31 deletions(-) delete mode 100755 bin/templates/scripts/cordova/lib/start-emulator diff --git a/.eslintignore b/.eslintignore index b84d7a825..c8c6b4f1d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,4 +7,3 @@ CordovaLib/cordova.js bin/test bin/cordova_plist_to_config_xml bin/templates/scripts/cordova/log -bin/templates/scripts/cordova/lib/start-emulator diff --git a/bin/templates/scripts/cordova/lib/start-emulator b/bin/templates/scripts/cordova/lib/start-emulator deleted file mode 100755 index 624335b1e..000000000 --- a/bin/templates/scripts/cordova/lib/start-emulator +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# Run the below to get the device targets: -# xcrun instruments -s - -set -e - - -DEFAULT_TARGET="iPhone 5s" -TARGET=${1:-$DEFAULT_TARGET} -LIB_PATH=$( cd "$( dirname "$0" )" && pwd -P) - -xcrun instruments -w "$TARGET" &> /dev/null \ No newline at end of file From 6e50686793bd6e72654644f1f34eded923a6af97 Mon Sep 17 00:00:00 2001 From: Erisu Date: Fri, 5 Nov 2021 23:29:58 +0900 Subject: [PATCH 23/24] chore: cleanup eslint ignore --- .eslintignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/.eslintignore b/.eslintignore index c8c6b4f1d..7a5960d02 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,6 +4,4 @@ tests/spec/unit/fixtures/* CordovaLib/cordova.js # Non-JS binaries -bin/test bin/cordova_plist_to_config_xml -bin/templates/scripts/cordova/log From f732de5e87fb2082dae5330df4b0c7331a4d4069 Mon Sep 17 00:00:00 2001 From: Erisu Date: Sat, 6 Nov 2021 13:32:21 +0900 Subject: [PATCH 24/24] refactor!: remove bat files --- bin/apple_ios_version.bat | 26 -------------------------- bin/apple_osx_version.bat | 26 -------------------------- bin/apple_xcode_version.bat | 26 -------------------------- 3 files changed, 78 deletions(-) delete mode 100755 bin/apple_ios_version.bat delete mode 100755 bin/apple_osx_version.bat delete mode 100755 bin/apple_xcode_version.bat diff --git a/bin/apple_ios_version.bat b/bin/apple_ios_version.bat deleted file mode 100755 index 8219312df..000000000 --- a/bin/apple_ios_version.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script="%~dp0apple_ios_version" -IF EXIST %script% ( - node %script% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'apple_ios_version' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) diff --git a/bin/apple_osx_version.bat b/bin/apple_osx_version.bat deleted file mode 100755 index d2acec7d1..000000000 --- a/bin/apple_osx_version.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script="%~dp0apple_osx_version" -IF EXIST %script% ( - node %script% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'apple_osx_version' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) diff --git a/bin/apple_xcode_version.bat b/bin/apple_xcode_version.bat deleted file mode 100755 index c19f911ce..000000000 --- a/bin/apple_xcode_version.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script="%~dp0apple_xcode_version" -IF EXIST %script% ( - node %script% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'apple_xcode_version' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -)