initial push with clean and rebuild commands

This commit is contained in:
2020-07-19 20:42:58 -04:00
commit df25294055
10 changed files with 519 additions and 0 deletions

81
main.go Normal file
View File

@@ -0,0 +1,81 @@
package main
import (
"fmt"
"os"
"strings"
prompt "github.com/c-bata/go-prompt"
"github.com/deranjer/ForlornProjectManager/engine"
)
func executor(in string) {
in = strings.TrimSpace(in)
blocks := strings.Split(in, " ")
switch blocks[0] {
case "exit":
fmt.Println("Exiting!")
os.Exit(0)
case "rebuild":
if len(blocks) > 1 {
fmt.Println("Subcommand is: ", blocks[1])
switch blocks[1] {
case "--rider":
fmt.Println("Enabling rider plugin when cleaning")
engine.RebuildProject(true, true)
}
} else {
fmt.Println("Cleaning project with default settings...")
engine.RebuildProject(false, true)
}
case "clean":
if len(blocks) > 1 {
fmt.Println("Flag is: ", blocks[1])
switch blocks[1] {
case "--rider":
fmt.Println("Enabling rider plugin when cleaning")
engine.RebuildProject(true, false)
}
} else {
fmt.Println("Cleaning project with default settings...")
engine.RebuildProject(false, false)
}
case "help":
fmt.Println("Use 'clean' or 'rebuild' with the optional flag '--rider' if you need the rider plugin enabled.")
fmt.Println("Example Usage: 'clean --rider' or 'rebuild --rider'.")
case "post", "put", "patch":
if len(blocks) < 2 {
fmt.Println("please set request body.")
return
}
default:
fmt.Println("Sorry, I don't understand")
}
}
func completer(in prompt.Document) []prompt.Suggest {
s := []prompt.Suggest{
{Text: "rebuild", Description: "cleans the project folder and regenerates all files, then builds"},
{Text: "clean", Description: "only cleans the project folder and regenerates files, no build"},
{Text: "help", Description: "Shows the help for Unreal Project Manager"},
{Text: "exit", Description: "Exit the program"},
{Text: "--rider", Description: "FLAG: Enables the rider plugin after 'clean' or 'rebuild'"},
}
return prompt.FilterHasPrefix(s, in.GetWordBeforeCursor(), true)
}
func main() {
fmt.Println("Welcome to the Unreal Project Manager, run 'clean' to run a basic clean/regenerate or 'rebuild' to do a full rebuild.")
fmt.Println("Make sure Unreal and Visual Studio are closed, this cannot run if they are open.")
fmt.Println("NOTE: By default the rider plugin is disabled on rebuild user '--rider' flag to enable it on build or clean")
fmt.Println("Type 'help' to display the full information")
p := prompt.New(
executor,
completer,
prompt.OptionPrefix(">>> "),
//prompt.OptionParser()
)
p.Run()
}