-
-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathchanges.mjs
More file actions
39 lines (31 loc) · 1 KB
/
Copy pathchanges.mjs
File metadata and controls
39 lines (31 loc) · 1 KB
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
// @ts-check
import { consola } from 'consola';
import { execa } from 'execa';
import { filter, map, pipe, unique } from 'remeda';
import colors from './colors.mjs';
const packageNameRegex = /^packages\/([@\w-]+)\//g;
async function main() {
const $ = execa({ all: true });
consola.start('Estimating change between release and main branches...');
consola.log('');
const diffMsg = (await $`git diff --name-only release..main`.pipe('sort')).stdout;
const filesChanged = diffMsg.split('\n');
consola.info(`${colors.Bold}Files changed:${colors.Reset}`);
for (const file of filesChanged) {
consola.log(`⋅ ${file}`);
}
consola.log('');
const packagesChanged = pipe(
filesChanged,
map((file) => packageNameRegex.exec(file)?.[1]),
filter(Boolean),
unique(),
);
// consola.log(diffMsg.split('\n'));
consola.info(`${colors.Bold}Packages changed:${colors.Reset}`);
for (const pkg of packagesChanged) {
consola.log(`⋅ ${pkg}`);
}
consola.log('');
}
export default main;