mirror of
https://github.com/cupcakearmy/autorestic.git
synced 2024-12-22 08:16:25 +00:00
feat(config): allow specifying lockfile
This commit is contained in:
parent
8de8d0070e
commit
0fdf9c77ae
@ -23,6 +23,7 @@ type Options map[string]OptionMap
|
||||
|
||||
type Config struct {
|
||||
Version string `mapstructure:"version" yaml:"version"`
|
||||
Lockfile string `mapstructure:"lockfile,omitempty" yaml:"lockfile,omitempty"`
|
||||
Extras interface{} `mapstructure:"extras" yaml:"extras"`
|
||||
Locations map[string]Location `mapstructure:"locations" yaml:"locations"`
|
||||
Backends map[string]Backend `mapstructure:"backends" yaml:"backends"`
|
||||
|
@ -3,6 +3,7 @@ package internal
|
||||
import (
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
|
||||
"github.com/cupcakearmy/autorestic/internal/colors"
|
||||
@ -18,20 +19,33 @@ const (
|
||||
RUNNING = "running"
|
||||
)
|
||||
|
||||
// getLockfilePath returns the path to the lockfile. If flags.LOCKFILE_PATH is
|
||||
// set, its value is used, otherwise the path is generated relative to the
|
||||
// config file.
|
||||
// getLockfilePath returns the path to the lockfile. The path for the lockfile
|
||||
// can be sources from multiple places If flags.LOCKFILE_PATH is set, its value
|
||||
// is used; if the config has the `lockfile` option set, its value is used;
|
||||
// otherwise the path is generated relative to the config file.
|
||||
func getLockfilePath() string {
|
||||
if flags.LOCKFILE_PATH != "" {
|
||||
return flags.LOCKFILE_PATH
|
||||
} else {
|
||||
p := viper.ConfigFileUsed()
|
||||
if p == "" {
|
||||
colors.Error.Println("cannot lock before reading config location")
|
||||
os.Exit(1)
|
||||
abs, err := filepath.Abs(flags.LOCKFILE_PATH)
|
||||
if err != nil {
|
||||
return flags.LOCKFILE_PATH
|
||||
}
|
||||
return path.Join(path.Dir(p), ".autorestic.lock.yml")
|
||||
return abs
|
||||
}
|
||||
|
||||
if lockfile := GetConfig().Lockfile; lockfile != "" {
|
||||
abs, err := filepath.Abs(lockfile)
|
||||
if err != nil {
|
||||
return lockfile
|
||||
}
|
||||
return abs
|
||||
}
|
||||
|
||||
p := viper.ConfigFileUsed()
|
||||
if p == "" {
|
||||
colors.Error.Println("cannot lock before reading config location")
|
||||
os.Exit(1)
|
||||
}
|
||||
return path.Join(path.Dir(p), ".autorestic.lock.yml")
|
||||
}
|
||||
|
||||
func getLock() *viper.Viper {
|
||||
|
Loading…
Reference in New Issue
Block a user