mirror of
https://github.com/cupcakearmy/autorestic.git
synced 2024-12-22 16:26:25 +00:00
moved path resolver into utils
This commit is contained in:
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,
|
||||||
@ -26,7 +28,7 @@ export const checkIfResticIsAvailable = () =>
|
|||||||
checkIfCommandIsAvailable(
|
checkIfCommandIsAvailable(
|
||||||
'restic',
|
'restic',
|
||||||
'Restic is not installed'.red +
|
'Restic is not installed'.red +
|
||||||
' https://restic.readthedocs.io/en/latest/020_installation.html#stable-releases'
|
' https://restic.readthedocs.io/en/latest/020_installation.html#stable-releases'
|
||||||
)
|
)
|
||||||
|
|
||||||
export const checkIfCommandIsAvailable = (cmd: string, errorMsg?: string) => {
|
export const checkIfCommandIsAvailable = (cmd: string, errorMsg?: 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…
Reference in New Issue
Block a user