mirror of
https://github.com/Sebclem/hassio-nextcloud-backup.git
synced 2024-11-15 14:02:59 +01:00
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
|
import fs from "fs";
|
||
|
import Joi from "joi"
|
||
|
import logger from "../config/winston.js";
|
||
|
import { default_root } from "../tools/pathTools.js";
|
||
|
import WebdavConfigValidation from "../types/services/webdavConfigValidation.js";
|
||
|
import { WebdavConfig, WebdavEndpointType } from "../types/services/webdavConfig.js"
|
||
|
|
||
|
|
||
|
const webdavConfigPath = "/data/webdavConfigV2.json";
|
||
|
|
||
|
|
||
|
export function validateWebdavConfig(config: WebdavConfig){
|
||
|
const validator = Joi.object(WebdavConfigValidation);
|
||
|
return validator.validateAsync(config);
|
||
|
}
|
||
|
|
||
|
export function saveWebdavConfig(config: WebdavConfig){
|
||
|
fs.writeFileSync(webdavConfigPath, JSON.stringify(config, undefined, 2));
|
||
|
}
|
||
|
|
||
|
export function getWebdavConfig(): WebdavConfig {
|
||
|
if (!fs.existsSync(webdavConfigPath)) {
|
||
|
logger.warn("Webdav Config file not found, creating default one !")
|
||
|
const defaultConfig = getWebdavDefaultConfig();
|
||
|
saveWebdavConfig(defaultConfig);
|
||
|
return defaultConfig;
|
||
|
} else {
|
||
|
return JSON.parse(fs.readFileSync(webdavConfigPath).toString());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export function getWebdavDefaultConfig(): WebdavConfig {
|
||
|
return {
|
||
|
url: "",
|
||
|
username: "",
|
||
|
password: "",
|
||
|
backupDir: default_root,
|
||
|
allowSelfSignedCerts: false,
|
||
|
webdavEndpoint: {
|
||
|
type: WebdavEndpointType.NEXTCLOUD,
|
||
|
}
|
||
|
}
|
||
|
}
|