2022-07-22 00:05:59 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2022-07-24 14:26:30 +08:00
|
|
|
"regexp"
|
2022-07-22 00:05:59 +08:00
|
|
|
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
)
|
|
|
|
|
|
|
|
func initCmd() *cobra.Command {
|
|
|
|
var name string
|
|
|
|
cmd := &cobra.Command{
|
|
|
|
Use: "init",
|
|
|
|
Short: "create a new mder folder",
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
2022-07-24 14:26:30 +08:00
|
|
|
if name == "" {
|
|
|
|
if len(args) != 0 {
|
|
|
|
name = args[0]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var rule = fmt.Sprintf("[a-zA-Z0-9_]{%d}", len(name))
|
|
|
|
var reg = regexp.MustCompilePOSIX(rule)
|
|
|
|
if !reg.MatchString(name) {
|
|
|
|
sfault("folder name must be %s", rule)
|
|
|
|
}
|
2022-07-22 00:05:59 +08:00
|
|
|
if err := cloneTemplate(name); err != nil {
|
2022-07-24 14:26:30 +08:00
|
|
|
sfault("clone template repository failed: %v", err)
|
2022-07-22 00:05:59 +08:00
|
|
|
}
|
2022-07-24 14:26:30 +08:00
|
|
|
sout("create folder %s success.", name)
|
2022-07-22 00:05:59 +08:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2022-07-24 14:26:30 +08:00
|
|
|
cmd.Flags().StringVar(&name, "name", "", "Name of the folder to create")
|
2022-07-22 00:05:59 +08:00
|
|
|
return cmd
|
|
|
|
}
|