mirror of https://github.com/curusarn/resh
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.7 KiB
76 lines
1.7 KiB
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/curusarn/resh/internal/cfg"
|
|
"github.com/curusarn/resh/internal/logger"
|
|
"github.com/curusarn/resh/internal/output"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// info passed during build
|
|
var version string
|
|
var commit string
|
|
var development string
|
|
|
|
func main() {
|
|
config, errCfg := cfg.New()
|
|
logger, err := logger.New("install-utils", config.LogLevel, development)
|
|
if err != nil {
|
|
fmt.Printf("Error while creating logger: %v", err)
|
|
}
|
|
defer logger.Sync() // flushes buffer, if any
|
|
if errCfg != nil {
|
|
logger.Error("Error while getting configuration", zap.Error(errCfg))
|
|
}
|
|
sugar := logger.Sugar()
|
|
sugar.Infow("Install-utils invoked ...",
|
|
"version", version,
|
|
"commit", commit,
|
|
)
|
|
out := output.New(logger, "install-utils")
|
|
|
|
if len(os.Args) < 2 {
|
|
out.ErrorWOErr("ERROR: Not enough arguments\n")
|
|
printUsage(os.Stderr)
|
|
os.Exit(1)
|
|
}
|
|
command := os.Args[1]
|
|
switch command {
|
|
case "backup":
|
|
backup()
|
|
case "rollback":
|
|
rollback()
|
|
case "migrate-config":
|
|
migrateConfig()
|
|
case "migrate-history":
|
|
migrateHistory(out)
|
|
case "setup-device":
|
|
setupDevice(out)
|
|
case "help":
|
|
printUsage(os.Stdout)
|
|
default:
|
|
out.ErrorWOErr(fmt.Sprintf("ERROR: Unknown command: %s\n", command))
|
|
printUsage(os.Stderr)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func printUsage(f *os.File) {
|
|
usage := `
|
|
USAGE: ./install-utils COMMAND
|
|
Utils used during RESH installation.
|
|
|
|
COMMANDS:
|
|
backup backup resh installation and data
|
|
rollback restore resh installation and data from backup
|
|
migrate-config update config to latest format
|
|
migrate-history update history to latest format
|
|
setup-device setup device name and device ID
|
|
help show this help
|
|
|
|
`
|
|
fmt.Fprint(f, usage)
|
|
}
|
|
|