84 lines
2.6 KiB
Go
84 lines
2.6 KiB
Go
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, true)
|
|
}
|
|
} else {
|
|
fmt.Println("Cleaning project with default settings...")
|
|
engine.RebuildProject(false, true, true)
|
|
}
|
|
case "create-solution":
|
|
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, true)
|
|
}
|
|
} else {
|
|
fmt.Println("Cleaning project with default settings...")
|
|
engine.RebuildProject(false, false, true)
|
|
}
|
|
case "clean":
|
|
if len(blocks) > 1 {
|
|
fmt.Println("Command does not accept flags, ignoring flag...")
|
|
}
|
|
fmt.Println("Cleaning project folders and files")
|
|
engine.RebuildProject(false, 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'.")
|
|
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"},
|
|
{Text: "create-solution", 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()
|
|
}
|