32 lines
993 B
TypeScript
32 lines
993 B
TypeScript
import { readFileSync, writeFileSync } from 'node:fs';
|
|
import { spawnSync } from 'node:child_process';
|
|
import { styleText } from 'node:util';
|
|
|
|
|
|
/* Constants */
|
|
const FLAKE = process.env.FLAKE;
|
|
|
|
export default (): string | null => {
|
|
console.log(styleText(['magenta'], '\nUpdating NetDaemon:\n'));
|
|
|
|
const FOLDER = `${FLAKE}/configurations/homie/modules/home-assistant/netdaemon`;
|
|
|
|
const OLD_VERSION = readFileSync(`${FOLDER}/.version`).toString().replace('\n', '');
|
|
|
|
const VERSION = JSON.parse(spawnSync([
|
|
'curl', '-s', 'https://api.github.com/repos/net-daemon/netdaemon/releases/latest',
|
|
].join(' '), [], { shell: true }).stdout.toString()).tag_name.replace('v', '');
|
|
|
|
if (OLD_VERSION !== VERSION) {
|
|
writeFileSync(`${FOLDER}/.version`, `${VERSION}\n`);
|
|
|
|
spawnSync('bumpNetdaemonDeps', [], {
|
|
cwd: FOLDER,
|
|
stdio: 'inherit',
|
|
});
|
|
|
|
return `NetDaemon: ${OLD_VERSION} -> ${VERSION}\n`;
|
|
}
|
|
|
|
return null;
|
|
};
|