alwaysai
Version:
The alwaysAI command-line interface (CLI)
49 lines (45 loc) • 1.34 kB
text/typescript
import { CliBranch, CliLeaf, CliStringInput } from '@alwaysai/alwayscli';
import { appPackageComponent } from '../../components/app';
import {
findOrWriteDockerComposeFileComponent,
writeStandaloneDockerfileComponent
} from '../../components/docker';
import {
getDockerComposeCmdForApp,
getTargetHardwareType
} from '../../core/app';
export const dockerCompose = CliLeaf({
name: 'docker-compose',
description: 'Generate Docker compose file for this project.',
hidden: false,
async action() {
await writeStandaloneDockerfileComponent();
await findOrWriteDockerComposeFileComponent({
yes: true,
cmd: await getDockerComposeCmdForApp({
targetHardware: await getTargetHardwareType({})
})
});
}
});
export const docker = CliLeaf({
name: 'docker',
description: `Package this application as a Docker image`,
positionalInput: CliStringInput({
description:
'Tag for application Docker image. Format: <dockerhub-user>/<img-name>:<version>',
placeholder: '<image_tag>',
required: true
}),
async action(dockerTag) {
await appPackageComponent({
yes: true,
dockerImageTag: dockerTag
});
}
});
export const appGenerateCliBranch = CliBranch({
name: 'generate',
description: `Generate application files.`,
subcommands: [dockerCompose, docker]
});