1 | #!/usr/bin/env node
|
2 |
|
3 | 'use strict';
|
4 |
|
5 | const { resolve } = require('path');
|
6 |
|
7 | const program = require('commander');
|
8 |
|
9 | const getServiceSpecs = require('./utils/getServiceSpecs');
|
10 |
|
11 |
|
12 |
|
13 | const COMPOSE_FILE = process.env.COMPOSE_FILE || 'docker-composer.yml';
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | const 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 |
|
40 |
|
41 | program
|
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 |
|
47 | watchable(program)
|
48 |
|
49 | .catch((error) => {
|
50 | console.error(error);
|
51 | process.exit(1);
|
52 | });
|