mirror of
https://github.com/cupcakearmy/autorestic.git
synced 2025-09-06 10:30:39 +00:00
formatting & trailing commas
This commit is contained in:
113
src/config.ts
113
src/config.ts
@@ -6,81 +6,84 @@ import { Backend, Config } from './types'
|
||||
import { makeObjectKeysLowercase, rand } from './utils'
|
||||
import { homedir } from 'os'
|
||||
|
||||
|
||||
|
||||
export const normalizeAndCheckBackends = (config: Config) => {
|
||||
config.backends = makeObjectKeysLowercase(config.backends)
|
||||
config.backends = makeObjectKeysLowercase(config.backends)
|
||||
|
||||
for (const [name, { type, path, key, ...rest }] of Object.entries(
|
||||
config.backends
|
||||
)) {
|
||||
if (!type || !path)
|
||||
throw new Error(
|
||||
`The backend "${name}" is missing some required attributes`
|
||||
)
|
||||
for (const [name, { type, path, key, ...rest }] of Object.entries(
|
||||
config.backends,
|
||||
)) {
|
||||
if (!type || !path)
|
||||
throw new Error(
|
||||
`The backend "${name}" is missing some required attributes`,
|
||||
)
|
||||
|
||||
const tmp: any = {
|
||||
type,
|
||||
path,
|
||||
key: key || rand(128),
|
||||
}
|
||||
for (const [key, value] of Object.entries(rest))
|
||||
tmp[key.toUpperCase()] = value
|
||||
const tmp: any = {
|
||||
type,
|
||||
path,
|
||||
key: key || rand(128),
|
||||
}
|
||||
for (const [key, value] of Object.entries(rest))
|
||||
tmp[key.toUpperCase()] = value
|
||||
|
||||
config.backends[name] = tmp as Backend
|
||||
}
|
||||
config.backends[name] = tmp as Backend
|
||||
}
|
||||
}
|
||||
|
||||
export const normalizeAndCheckBackups = (config: Config) => {
|
||||
config.locations = makeObjectKeysLowercase(config.locations)
|
||||
const backends = Object.keys(config.backends)
|
||||
config.locations = makeObjectKeysLowercase(config.locations)
|
||||
const backends = Object.keys(config.backends)
|
||||
|
||||
const checkDestination = (backend: string, backup: string) => {
|
||||
if (!backends.includes(backend))
|
||||
throw new Error(`Cannot find the backend "${backend}" for "${backup}"`)
|
||||
}
|
||||
const checkDestination = (backend: string, backup: string) => {
|
||||
if (!backends.includes(backend))
|
||||
throw new Error(`Cannot find the backend "${backend}" for "${backup}"`)
|
||||
}
|
||||
|
||||
for (const [name, { from, to, ...rest }] of Object.entries(
|
||||
config.locations
|
||||
)) {
|
||||
if (!from || !to)
|
||||
throw new Error(
|
||||
`The backup "${name}" is missing some required attributes`
|
||||
)
|
||||
for (const [name, { from, to, ...rest }] of Object.entries(
|
||||
config.locations,
|
||||
)) {
|
||||
if (!from || !to)
|
||||
throw new Error(
|
||||
`The backup "${name}" is missing some required attributes`,
|
||||
)
|
||||
|
||||
if (Array.isArray(to)) for (const t of to) checkDestination(t, name)
|
||||
else checkDestination(to, name)
|
||||
}
|
||||
if (Array.isArray(to)) for (const t of to) checkDestination(t, name)
|
||||
else checkDestination(to, name)
|
||||
}
|
||||
}
|
||||
|
||||
const findConfigFile = (): string | undefined => {
|
||||
const config = '.autorestic.yml'
|
||||
const paths = [
|
||||
resolve(flags.config || ''),
|
||||
resolve('./' + config),
|
||||
homedir() + '/' + config,
|
||||
]
|
||||
for (const path of paths) {
|
||||
try {
|
||||
const file = statSync(path)
|
||||
if (file.isFile()) return path
|
||||
} catch (e) {}
|
||||
}
|
||||
const config = '.autorestic.yml'
|
||||
const paths = [
|
||||
resolve(flags.config || ''),
|
||||
resolve('./' + config),
|
||||
homedir() + '/' + config,
|
||||
]
|
||||
for (const path of paths) {
|
||||
try {
|
||||
const file = statSync(path)
|
||||
if (file.isFile()) return path
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export let CONFIG_FILE: string = ''
|
||||
|
||||
export const init = (): Config | undefined => {
|
||||
const file = findConfigFile()
|
||||
if (file) CONFIG_FILE = file
|
||||
else return
|
||||
const file = findConfigFile()
|
||||
if (file) CONFIG_FILE = file
|
||||
else return
|
||||
|
||||
const raw: Config = makeObjectKeysLowercase(
|
||||
yaml.safeLoad(readFileSync(CONFIG_FILE).toString())
|
||||
)
|
||||
const raw: Config = makeObjectKeysLowercase(
|
||||
yaml.safeLoad(readFileSync(CONFIG_FILE).toString()),
|
||||
)
|
||||
|
||||
normalizeAndCheckBackends(raw)
|
||||
normalizeAndCheckBackups(raw)
|
||||
normalizeAndCheckBackends(raw)
|
||||
normalizeAndCheckBackups(raw)
|
||||
|
||||
writeFileSync(CONFIG_FILE, yaml.safeDump(raw))
|
||||
writeFileSync(CONFIG_FILE, yaml.safeDump(raw))
|
||||
|
||||
return raw
|
||||
return raw
|
||||
}
|
||||
|
Reference in New Issue
Block a user