-
Notifications
You must be signed in to change notification settings - Fork 0
/
update.js
59 lines (47 loc) · 1.3 KB
/
update.js
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'use strict'
const { Command, flags } = require('@oclif/command')
const path = require('path')
const Main = require('../main')
const util = require('../main/util')
class UpdateCommand extends Command {
async run () {
const { flags } = this.parse(UpdateCommand)
const confDir = path.join('/etc/nixos')
const outDir = path.join(confDir, 'conf-tool')
this.log(`Loading ${confDir}...`)
const plugins = await Main(confDir)
if (flags.hwScan) {
this.log('Running hw-scan...')
await util.generateConfig(flags.root)
}
this.log('Writing config...')
const files = await util.renderToFiles(plugins)
await util.batchWriteFiles(outDir, files)
if (flags.apply) {
this.log('Applying config...')
await util.applyConfig(flags.upgrade)
}
}
}
UpdateCommand.description = `Updates as conf-tool configuration
...
test
`
UpdateCommand.flags = {
hwScan: flags.boolean({
char: 'h',
description: 'Do a hardware-scan with nixos-generate-config afterwards',
default: true
}),
apply: flags.boolean({
char: 'a',
description: 'Apply config with nixos-rebuild switch',
default: false
}),
upgrade: flags.boolean({
char: 'u',
description: 'nixos-rebuild switch --upgrade flag',
default: false
})
}
module.exports = UpdateCommand