add merge functionality to mg

This commit is contained in:
2023-08-28 18:08:35 -07:00
parent 15122346d1
commit a5817c554b
5 changed files with 86 additions and 19 deletions

View File

@@ -10,7 +10,7 @@ import (
var commitCmd = &cobra.Command{
Use: "commit",
Short: "commit all current repos with the same message",
Run: func(cmd *cobra.Command, args []string) {
Run: func(_ *cobra.Command, args []string) {
fmt.Println("commit called")
},
}

61
cmd/mg/cmd/import.go Normal file
View File

@@ -0,0 +1,61 @@
package cmd
import (
"io"
"log"
"os"
"github.com/spf13/cobra"
"github.com/taigrr/mg/parse"
)
var importCmd = &cobra.Command{
Use: "import <file>",
Short: "merge a new mgconfig into the current one",
Args: cobra.ExactArgs(1),
Run: func(_ *cobra.Command, args []string) {
conf := GetConfig()
if args[0] == "-" {
f, err := io.ReadAll(os.Stdin)
if err != nil {
log.Println(err)
os.Exit(1)
}
parsed, err := parse.ParseMGConfig(f)
if err != nil {
log.Println(err)
os.Exit(1)
}
err = conf.Merge(parsed)
if err != nil {
log.Println(err)
os.Exit(1)
}
} else {
f, err := os.ReadFile(args[0])
if err != nil {
log.Println(err)
os.Exit(1)
}
parsed, err := parse.ParseMGConfig(f)
if err != nil {
log.Println(err)
os.Exit(1)
}
err = conf.Merge(parsed)
if err != nil {
log.Println(err)
os.Exit(1)
}
}
err := conf.Save()
if err != nil {
log.Println(err)
os.Exit(1)
}
},
}
func init() {
rootCmd.AddCommand(registerCmd)
}