/** * disk-manager.ts * Copyright (C) 2021 Sanar * * @author Edgard Leal * @module disk-manager.ts */ import os from 'os'; import { join } from 'path'; import fs from 'fs'; export const DATA_DIR = `${os.homedir()}/.backup`; /** * Resolve a file/dir name/path base on backup dir ( DATA_DIR ) * * @example * ``` * resolvePath('info.txt'); // /home/user/.backup/info.txt * ``` * @author edgardleal * @since 06.05.21 */ export function resolvePath(p: string): string { const finalDir = p.indexOf(DATA_DIR) > -1 ? p : join(DATA_DIR, p); return finalDir; } export function mkdir(path: string) { return new Promise((resolve, reject) => { const finalDir = resolvePath(path); if (fs.existsSync(finalDir)) { resolve(finalDir); } else { fs.mkdir(finalDir, { recursive: true }, (error?: any) => { if (error) { reject(error); } else { resolve(path); } }); } }); }