-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.ts
42 lines (36 loc) · 1.61 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright (c) 2022-2024 Contributors to the Eclipse Foundation
//
// This program and the accompanying materials are made available under the
// terms of the Apache License, Version 2.0 which is available at
// https://www.apache.org/licenses/LICENSE-2.0.
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
//
// SPDX-License-Identifier: Apache-2.0
import { Command } from '@oclif/core';
import { ProjectConfigIO } from '../../modules/projectConfig/projectConfigIO';
import { installComponent } from '../../modules/setup';
export default class Sync extends Command {
static description = 'Syncs Velocitas components into your repo.';
static examples = [
`$ velocitas sync
Syncing Velocitas components!
... syncing 'github-workflows'
... syncing 'github-templates'`,
];
async run(): Promise<void> {
this.log(`Syncing Velocitas components!`);
const projectConfig = ProjectConfigIO.read(`v${this.config.version}`);
for (const componentContext of projectConfig.getComponentContexts()) {
if (!componentContext.manifest.files || componentContext.manifest.files.length === 0) {
continue;
}
this.log(`... syncing '${componentContext.manifest.id}'`);
installComponent(componentContext, projectConfig.getVariableCollection(componentContext));
}
}
}