UNPKG

1.29 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3'use strict';
4
5const { resolve } = require('path');
6
7const program = require('commander');
8
9const getServiceSpecs = require('./utils/getServiceSpecs');
10
11// -- Constants --------------- --- -- -
12
13const COMPOSE_FILE = process.env.COMPOSE_FILE || 'docker-composer.yml';
14
15// -- watchable --------------- --- -- -
16
17/**
18 * @param {string} name - The name of a name.
19 * @returns {Promise.<int>}
20 */
21const watchable = async ({ args: [name], composefile }) => {
22 if (!name) {
23 throw new Error('Missing service name parameter.');
24 }
25 const serviceSpecs = await getServiceSpecs(resolve(composefile));
26 const serviceSpec = serviceSpecs[name];
27 let result = 0;
28 if (serviceSpec && serviceSpec.manifest && serviceSpec.manifest.watchable) {
29 if (serviceSpec.manifest.cargoApp) {
30 result += 1;
31 }
32 if (serviceSpec.manifest.cargoFrontend) {
33 result += 2;
34 }
35 }
36 console.log(result);
37};
38
39// -- CLI --------------- --- -- -
40
41program
42 .version('0.1.0')
43 .usage('[options] service')
44 .option('--composefile [path]', `Specify the Compose file to use [${COMPOSE_FILE}].`, COMPOSE_FILE)
45 .parse(process.argv);
46
47watchable(program)
48 // .then((names) => console.log(names.join(' ')))
49 .catch((error) => {
50 console.error(error);
51 process.exit(1);
52 });