diff --git a/packages/sitevision-scripts/config/setup-questions.js b/packages/sitevision-scripts/config/setup-questions.js index 6cd6c785..1c2abd6d 100644 --- a/packages/sitevision-scripts/config/setup-questions.js +++ b/packages/sitevision-scripts/config/setup-questions.js @@ -69,6 +69,19 @@ export const questions = [ type: 'password', message: 'Password for development site', }, + { + name: 'signUsername', + message: 'Username for developer.sitevision.se', + }, + { + name: 'signPassword', + type: 'password', + message: 'Password for developer.sitevision.se', + }, + { + name: 'certificateName', + message: 'Certificate for developer.sitevision.se', + }, { name: 'useHTTPForDevDeploy', message: 'Use (unsafe) HTTP for local deployment?', diff --git a/packages/sitevision-scripts/scripts/init.js b/packages/sitevision-scripts/scripts/init.js index 6dca0aaf..15c0ed47 100644 --- a/packages/sitevision-scripts/scripts/init.js +++ b/packages/sitevision-scripts/scripts/init.js @@ -170,6 +170,9 @@ export default async ({ appPath, appName }) => { addonName, username, password, + signUsername, + signPassword, + certificateName, typescript, serverSideOnly, useHTTPForDevDeploy, @@ -186,6 +189,9 @@ export default async ({ appPath, appName }) => { addonName, username, password, + signUsername, + signPassword, + certificateName, useHTTPForDevDeploy, }, null, diff --git a/packages/sitevision-scripts/scripts/setup-dev-properties.js b/packages/sitevision-scripts/scripts/setup-dev-properties.js index c2587d69..768b6985 100644 --- a/packages/sitevision-scripts/scripts/setup-dev-properties.js +++ b/packages/sitevision-scripts/scripts/setup-dev-properties.js @@ -69,6 +69,9 @@ const hasTranspileOptionInPackageJSON = () => { addonName, username, password, + signUsername, + signPassword, + certificateName, useHTTPForDevDeploy, }) => { console.clear(); @@ -82,6 +85,9 @@ const hasTranspileOptionInPackageJSON = () => { addonName, username, password, + signUsername, + signPassword, + certificateName, useHTTPForDevDeploy, }, null, diff --git a/packages/sitevision-scripts/scripts/sign.js b/packages/sitevision-scripts/scripts/sign.js index 3f8c41af..56cd5081 100644 --- a/packages/sitevision-scripts/scripts/sign.js +++ b/packages/sitevision-scripts/scripts/sign.js @@ -8,23 +8,38 @@ import chalk from 'chalk'; import { getFullAppId } from './util/id.js'; (function () { - var questions = [ - { - name: 'username', + const props = properties.getDevProperties(); + + const signUsernameFromProps = (props.signUsername || ''); + const signPasswordFromProps = (props.signPassword || ''); + const certificateFromProps = (props.certificateName || ''); + + const questions = []; + + // Add the questions if the fields dont exist in dev_properties + if (!signUsernameFromProps) { + questions.push({ + name: 'signUsername', message: 'Username for developer.sitevision.se', validate: (input) => (input.length ? true : 'Please enter your username'), - }, - { - name: 'password', + }); + } + + if (!signPasswordFromProps) { + questions.push({ + name: 'signPassword', type: 'password', message: 'Password for developer.sitevision.se', validate: (input) => (input.length ? true : 'Please enter your password'), - }, - { + }); + } + + if (!certificateFromProps) { + questions.push({ name: 'certificateName', message: 'Certificate name for signing (blank for default)', - }, - ]; + }); + } const manifest = properties.getManifest(); const appId = getFullAppId(manifest.id); @@ -37,15 +52,20 @@ import { getFullAppId } from './util/id.js'; } inquirer.prompt(questions).then(async (answers) => { - if (!answers.username || !answers.password) { + const username = (answers.signUsername || signUsernameFromProps); + const password = (answers.signPassword || signPasswordFromProps); + + const certificateName = (answers.certificateName || certificateFromProps); + + if (!username || !password) { console.log(chalk.red('Invalid user name or password')); return null; } let url = `https://developer.sitevision.se/rest-api/appsigner/signapp`; - if (answers.certificateName) { - url += '?certificateName=' + answers.certificateName; + if (certificateName) { + url += '?certificateName=' + certificateName; } const formData = new FormData(); @@ -60,7 +80,7 @@ import { getFullAppId } from './util/id.js'; body: formData, headers: formData.getHeaders({ Authorization: `Basic ${Buffer.from( - answers.username + ':' + answers.password + username + ':' + password ).toString('base64')}`, }), });