diff --git a/m.go b/m.go new file mode 100644 index 0000000..f21e515 --- /dev/null +++ b/m.go @@ -0,0 +1,30 @@ +package not_main + +import ( + funcs "flightpkg/func" + "fmt" + "os" +) + +func main() { + cli := os.Args[1:] + if len(cli) == 0 { + fmt.Println("flight [arguments]") + } else { + if cli[0] == "-h" || cli[0] == "-help" || cli[0] == "--help" { + funcs.Help() + } else if cli[0] == "install" || cli[0] == "i" || cli[0] == "add" || cli[0] == "a" || cli[0] == "get" || cli[0] == "g" { + funcs.Install(cli[1:]) + } else if cli[0] == "uninstall" || cli[0] == "u" || cli[0] == "remove" || cli[0] == "r" { + funcs.Uninstall(cli[1:]) + } else if cli[0] == "status" || cli[0] == "-s" || cli[0] == "--status" { + funcs.Status() + } else if cli[0] == "update" || cli[0] == "up" || cli[0] == "u" { + funcs.Update() + } else if cli[0] == "-v" || cli[0] == "-version" || cli[0] == "--version" { + funcs.Version() + } else { + fmt.Println("flight [arguments]") + } + } +} diff --git a/src/commands/hi.go b/src/commands/hi.go new file mode 100644 index 0000000..0e8072b --- /dev/null +++ b/src/commands/hi.go @@ -0,0 +1,5 @@ +package commands + +func Hi() { + println("hiya") +} diff --git a/src/framework/main.go b/src/framework/main.go new file mode 100644 index 0000000..c50c74d --- /dev/null +++ b/src/framework/main.go @@ -0,0 +1,49 @@ +package framework + +import ( + "fmt" + "go/importer" + "os" + "path/filepath" + "runtime" + "strings" +) + +func Main() { + runCommand("d", [2]string{"hi", "hello"}) +} + +func runCommand(cmd string, args [2]string) { + dir, err := os.Getwd() + if err != nil { + fmt.Println(fmt.Errorf("%v directory does not exist", err)) + } + commandFiles, matchErr := filepath.Glob(fmt.Sprintf("%s/commands/*.go", dir)) + + if matchErr != nil { + fmt.Println("Failed to load commands.") + } + + println(fmt.Sprint(commandFiles), dir) + + for _, file := range commandFiles { + println(file) + imported, err := importer.Default().Import("flightpkg/commands") // does not work + + if err != nil { + fmt.Println("Failed to load a command.", err) + } + + println(imported.Imports()) + } +} + +func getCommandName(filePath string) string { + if runtime.GOOS == "windows" { + s := strings.Split(filePath, "\\") + + return strings.Split(s[len(s)-1], ".go")[0] + } + + return "UNKNOWN" +} diff --git a/src/go.mod b/src/go.mod index a882e30..8f5258b 100644 --- a/src/go.mod +++ b/src/go.mod @@ -4,6 +4,7 @@ go 1.18 require ( github.com/cavaliergopher/grab/v3 v3.0.1 // indirect + github.com/gobwas/glob v0.2.3 // indirect github.com/mbndr/figlet4go v0.0.0-20190224160619-d6cef5b186ea // indirect github.com/walle/targz v0.0.0-20140417120357-57fe4206da5a // indirect ) diff --git a/src/go.sum b/src/go.sum index d752545..8523c24 100644 --- a/src/go.sum +++ b/src/go.sum @@ -1,5 +1,7 @@ github.com/cavaliergopher/grab/v3 v3.0.1 h1:4z7TkBfmPjmLAAmkkAZNX/6QJ1nNFdv3SdIHXju0Fr4= github.com/cavaliergopher/grab/v3 v3.0.1/go.mod h1:1U/KNnD+Ft6JJiYoYBAimKH2XrYptb8Kl3DFGmsjpq4= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/mbndr/figlet4go v0.0.0-20190224160619-d6cef5b186ea h1:mQncVDBpKkAecPcH2IMGpKUQYhwowlafQbfkz2QFqkc= github.com/mbndr/figlet4go v0.0.0-20190224160619-d6cef5b186ea/go.mod h1:QzTGLGoOqLHUBK8/EZ0v4Fa4CdyXmdyRwCHcl0YbeO4= github.com/walle/targz v0.0.0-20140417120357-57fe4206da5a h1:6cKSHLRphD9Fo1LJlISiulvgYCIafJ3QfKLimPYcAGc= diff --git a/src/main.go b/src/main.go index d078de8..4cb3622 100644 --- a/src/main.go +++ b/src/main.go @@ -1,30 +1,7 @@ package main -import ( - funcs "flightpkg/func" - "fmt" - "os" -) +import "flightpkg/framework" func main() { - cli := os.Args[1:] - if len(cli) == 0 { - fmt.Println("flight [arguments]") - } else { - if cli[0] == "-h" || cli[0] == "-help" || cli[0] == "--help" { - funcs.Help() - } else if cli[0] == "install" || cli[0] == "i" || cli[0] == "add" || cli[0] == "a" || cli[0] == "get" || cli[0] == "g" { - funcs.Install(cli[1:]) - } else if cli[0] == "uninstall" || cli[0] == "u" || cli[0] == "remove" || cli[0] == "r" { - funcs.Uninstall(cli[1:]) - } else if cli[0] == "status" || cli[0] == "-s" || cli[0] == "--status" { - funcs.Status() - } else if cli[0] == "update" || cli[0] == "up" || cli[0] == "u" { - funcs.Update() - } else if cli[0] == "-v" || cli[0] == "-version" || cli[0] == "--version" { - funcs.Version() - } else { - fmt.Println("flight [arguments]") - } - } + framework.Main() }