moved path resolver into utils

pull/23/head
cupcakearmy 5 years ago
parent b5daff07eb
commit 6a055d3114

@ -3,21 +3,16 @@ import { Writer } from 'clitastic'
import { config, VERBOSE } from './autorestic' import { config, VERBOSE } from './autorestic'
import { getEnvFromBackend } from './backend' import { getEnvFromBackend } from './backend'
import { Locations, Location } from './types' import { Locations, Location } from './types'
import { exec, ConfigError } from './utils' import { exec, ConfigError, pathRelativeToConfigFile } from './utils'
import { CONFIG_FILE } from './config'
import { resolve, dirname, isAbsolute } from 'path'
export const backupSingle = (name: string, from: string, to: string) => { export const backupSingle = (name: string, from: string, to: string) => {
if (!config) throw ConfigError if (!config) throw ConfigError
const writer = new Writer(name + to.blue + ' : ' + 'Backing up... ⏳') const writer = new Writer(name + to.blue + ' : ' + 'Backing up... ⏳')
const backend = config.backends[to] const backend = config.backends[to]
// Check if is an absolute path, otherwise get the path relative to the config file const path = pathRelativeToConfigFile(to)
const pathRelativeToConfigFile = isAbsolute(from)
? from
: resolve(dirname(CONFIG_FILE), from)
const cmd = exec('restic', ['backup', pathRelativeToConfigFile], { const cmd = exec('restic', ['backup', path], {
env: getEnvFromBackend(backend), env: getEnvFromBackend(backend),
}) })

@ -2,6 +2,8 @@ import axios from 'axios'
import { spawnSync, SpawnSyncOptions } from 'child_process' import { spawnSync, SpawnSyncOptions } from 'child_process'
import { randomBytes } from 'crypto' import { randomBytes } from 'crypto'
import { createWriteStream } from 'fs' import { createWriteStream } from 'fs'
import { isAbsolute, resolve, dirname } from 'path'
import { CONFIG_FILE } from './config'
export const exec = ( export const exec = (
command: string, command: string,
@ -74,4 +76,9 @@ export const downloadFile = async (url: string, to: string) =>
}) })
}) })
// Check if is an absolute path, otherwise get the path relative to the config file
export const pathRelativeToConfigFile = (path: string): string => isAbsolute(path)
? path
: resolve(dirname(CONFIG_FILE), path)
export const ConfigError = new Error('Config file not found') export const ConfigError = new Error('Config file not found')

Loading…
Cancel
Save