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