mirror of
https://github.com/balena-io/balena-cli.git
synced 2025-06-24 18:45:07 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
1e3fa10cda | |||
4da2268270 | |||
b85b7bfa2d | |||
b39ab442ba |
@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
|
|||||||
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
## 10.17.6 - 2019-07-23
|
||||||
|
|
||||||
|
* [BACKPORT] Update mixpanel tracking [Paulo Castro]
|
||||||
|
* [BACKPORT] Fix type checker, linter and prettier errors to allow backport changes [Paulo Castro]
|
||||||
|
|
||||||
## 10.17.5 - 2019-06-04
|
## 10.17.5 - 2019-06-04
|
||||||
|
|
||||||
* Pin moment-duration-format package (ReferenceError: window is not defined) [Paulo Castro]
|
* Pin moment-duration-format package (ReferenceError: window is not defined) [Paulo Castro]
|
||||||
|
@ -51,7 +51,7 @@ execPkg(['--target', 'host', '--output', 'build-bin/balena', 'package.json'])
|
|||||||
.then(nativeExtensions => {
|
.then(nativeExtensions => {
|
||||||
console.log(`\nCopying to build-bin:\n${nativeExtensions.join('\n')}`);
|
console.log(`\nCopying to build-bin:\n${nativeExtensions.join('\n')}`);
|
||||||
|
|
||||||
return nativeExtensions.map(extPath => {
|
return nativeExtensions.map((extPath: string) => {
|
||||||
return fs.copy(
|
return fs.copy(
|
||||||
extPath,
|
extPath,
|
||||||
extPath.replace(
|
extPath.replace(
|
||||||
|
@ -126,9 +126,7 @@ export class MarkdownFileParser {
|
|||||||
} else {
|
} else {
|
||||||
reject(
|
reject(
|
||||||
new Error(
|
new Error(
|
||||||
`Markdown section not found: title="${title}" file="${
|
`Markdown section not found: title="${title}" file="${this.mdFilePath}"`,
|
||||||
this.mdFilePath
|
|
||||||
}"`,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -223,9 +223,7 @@ export const add: CommandDefinition<
|
|||||||
throw new Error(`Environment value not found for key: ${params.key}`);
|
throw new Error(`Environment value not found for key: ${params.key}`);
|
||||||
} else {
|
} else {
|
||||||
console.info(
|
console.info(
|
||||||
`Warning: using ${params.key}=${
|
`Warning: using ${params.key}=${params.value} from host environment`,
|
||||||
params.value
|
|
||||||
} from host environment`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,9 +88,7 @@ async function getAppOwner(sdk: BalenaSDK, appName: string) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const selected = await selectFromList(
|
const selected = await selectFromList(
|
||||||
`${
|
`${entries.length} applications found with that name, please select the application you would like to push to`,
|
||||||
entries.length
|
|
||||||
} applications found with that name, please select the application you would like to push to`,
|
|
||||||
entries,
|
entries,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -212,9 +212,7 @@ export const tunnel: CommandDefinition<Args, Options> = {
|
|||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
logger.logInfo(
|
logger.logInfo(
|
||||||
` - tunnelling ${localAddress}:${localPort} to ${
|
` - tunnelling ${localAddress}:${localPort} to ${device.uuid}:${remotePort}`,
|
||||||
device.uuid
|
|
||||||
}:${remotePort}`,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -49,16 +49,19 @@ export function trackCommand(capitanoCli: Capitano.Cli) {
|
|||||||
username,
|
username,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
// `command.signature.toString()` results in a string like, for example:
|
||||||
|
// "push <applicationOrDevice>"
|
||||||
|
// That's literally so: "applicationOrDevice" is NOT replaced with
|
||||||
|
// the actual application ID or device ID. The purpose is find out the
|
||||||
|
// most / least used command verbs, so we can focus our development
|
||||||
|
// effort where it is most beneficial to end users.
|
||||||
return mixpanel.track(`[CLI] ${command.signature.toString()}`, {
|
return mixpanel.track(`[CLI] ${command.signature.toString()}`, {
|
||||||
distinct_id: username,
|
distinct_id: username,
|
||||||
argv: process.argv.join(' '),
|
|
||||||
version: packageJSON.version,
|
version: packageJSON.version,
|
||||||
node: process.version,
|
node: process.version,
|
||||||
arch: process.arch,
|
arch: process.arch,
|
||||||
balenaUrl,
|
balenaUrl, // e.g. 'balena-cloud.com' or 'balena-staging.com'
|
||||||
platform: process.platform,
|
platform: process.platform,
|
||||||
command: capitanoCli,
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
@ -51,9 +51,7 @@ export async function parseRegistrySecrets(
|
|||||||
return registrySecrets;
|
return registrySecrets;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return exitWithExpectedError(
|
return exitWithExpectedError(
|
||||||
`Error validating registry secrets file "${secretsFilename}":\n${
|
`Error validating registry secrets file "${secretsFilename}":\n${error.message}`,
|
||||||
error.message
|
|
||||||
}`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,9 +142,7 @@ async function performResolution(
|
|||||||
buildTask.buildStream = clonedStream;
|
buildTask.buildStream = clonedStream;
|
||||||
if (!buildTask.external && !buildTask.resolved) {
|
if (!buildTask.external && !buildTask.resolved) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Project type for service "${
|
`Project type for service "${buildTask.serviceName}" could not be determined. Missing a Dockerfile?`,
|
||||||
buildTask.serviceName
|
|
||||||
}" could not be determined. Missing a Dockerfile?`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return buildTask;
|
return buildTask;
|
||||||
|
@ -92,9 +92,7 @@ async function environmentFromInput(
|
|||||||
// exists
|
// exists
|
||||||
if (!(match[1] in ret)) {
|
if (!(match[1] in ret)) {
|
||||||
logger.logDebug(
|
logger.logDebug(
|
||||||
`Warning: Cannot find a service with name ${
|
`Warning: Cannot find a service with name ${match[1]}. Treating the string as part of the environment variable name.`,
|
||||||
match[1]
|
|
||||||
}. Treating the string as part of the environment variable name.`,
|
|
||||||
);
|
);
|
||||||
match[2] = `${match[1]}:${match[2]}`;
|
match[2] = `${match[1]}:${match[2]}`;
|
||||||
} else {
|
} else {
|
||||||
@ -132,9 +130,7 @@ export async function deployToDevice(opts: DeviceDeployOptions): Promise<void> {
|
|||||||
await api.ping();
|
await api.ping();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exitWithExpectedError(
|
exitWithExpectedError(
|
||||||
`Could not communicate with local mode device at address ${
|
`Could not communicate with local mode device at address ${opts.deviceHost}`,
|
||||||
opts.deviceHost
|
|
||||||
}`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,13 +45,9 @@ export function stateToString(state: OperationState) {
|
|||||||
|
|
||||||
switch (state.operation.command) {
|
switch (state.operation.command) {
|
||||||
case 'copy':
|
case 'copy':
|
||||||
return `${result} ${state.operation.from.path} -> ${
|
return `${result} ${state.operation.from.path} -> ${state.operation.to.path}`;
|
||||||
state.operation.to.path
|
|
||||||
}`;
|
|
||||||
case 'replace':
|
case 'replace':
|
||||||
return `${result} ${state.operation.file.path}, ${
|
return `${result} ${state.operation.file.path}, ${state.operation.copy} -> ${state.operation.replace}`;
|
||||||
state.operation.copy
|
|
||||||
} -> ${state.operation.replace}`;
|
|
||||||
case 'run-script':
|
case 'run-script':
|
||||||
return `${result} ${state.operation.script}`;
|
return `${result} ${state.operation.script}`;
|
||||||
default:
|
default:
|
||||||
|
@ -279,9 +279,7 @@ function createRemoteBuildRequest(
|
|||||||
if (response.statusCode >= 100 && response.statusCode < 400) {
|
if (response.statusCode >= 100 && response.statusCode < 400) {
|
||||||
if (DEBUG_MODE) {
|
if (DEBUG_MODE) {
|
||||||
console.log(
|
console.log(
|
||||||
`[debug] received HTTP ${response.statusCode} ${
|
`[debug] received HTTP ${response.statusCode} ${response.statusMessage}`,
|
||||||
response.statusMessage
|
|
||||||
}`,
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "balena-cli",
|
"name": "balena-cli",
|
||||||
"version": "10.17.5",
|
"version": "10.17.6",
|
||||||
"description": "The official balena CLI tool",
|
"description": "The official balena CLI tool",
|
||||||
"main": "./build/actions/index.js",
|
"main": "./build/actions/index.js",
|
||||||
"homepage": "https://github.com/balena-io/balena-cli",
|
"homepage": "https://github.com/balena-io/balena-cli",
|
||||||
|
Reference in New Issue
Block a user