From 971cc396e1d01f53f65a86278fd0ac4490565335 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Fri, 20 Nov 2020 19:56:29 -0500 Subject: Reorganize. Update to use go modules. --- cli.go | 195 ----------------------------------------------------------------- 1 file changed, 195 deletions(-) delete mode 100644 cli.go (limited to 'cli.go') diff --git a/cli.go b/cli.go deleted file mode 100644 index af0654d..0000000 --- a/cli.go +++ /dev/null @@ -1,195 +0,0 @@ -package main - -import ( - "errors" - "flag" - "fmt" - "os" - - "git.riedstra.us/mitch/steam-export/lib/config" - "git.riedstra.us/mitch/steam-export/lib/steam" -) - -var ( - errorHandling flag.ErrorHandling = flag.ExitOnError - - steamLib *steam.Library = &steam.Library{} -) - -func parseArgs(args []string) error { - if len(args) < 2 { - return errors.New("Not enough arguments") - } - aa := args[2:] - switch a := args[1]; a { - case "list": - return listGames(aa) - case "package": - return packageGame(aa) - case "extract": - return extractGame(aa) - case "delete": - return deleteGame(aa) - case "edit-config": - return editConfig(aa) - default: - printHelp() - } - - return nil -} - -func printHelp() { - fmt.Printf(`--- -Program usage: -steam-export-cli $subcommand $options -Subcommands: - list - package - extract - delete - server - edit-config - -Type in a subcommand -h or -help for more information -`) - -} - -func editConfig(args []string) error { - fl := flag.NewFlagSet("edit-config", errorHandling) - e := fl.String("e", "", "Editor to invoke") - if err := fl.Parse(args); err != nil { - return err - } - return config.EditDefaultConfig(*e) -} - -func listGames(args []string) error { - fl := flag.NewFlagSet("list", errorHandling) - lib := fl.String("l", steam.DefaultLib, - "Path to library in question. All the way to the 'steamapps' folder") - - l := steam.DefaultLib - fl.Parse(args) - if fl.Parsed() { - l = string(*lib) - } - - if err := steamLib.ProcessLibrary(l); err != nil { - return err - } - - fmt.Println(steamLib) - - return nil -} - -func packageGame(args []string) error { - fl := flag.NewFlagSet("package", errorHandling) - lib := fl.String("l", steam.DefaultLib, - "Path to library in question. All the way to the 'steamapps' folder") - fileName := fl.String("f", "export", - "Name of the archive file to be created. Please do not include the file extension") - game := fl.Int("g", -1, - "Index of the game to be exported. Please see `list` for the index") - compress := fl.String("z", "gz", - "Compression type. Default 'gz' '' is no compression") - - var g int - l := steam.DefaultLib - fl.Parse(args) - if fl.Parsed() { - l = string(*lib) - g = int(*game) - } - - if err := steamLib.ProcessLibrary(l); err != nil { - return err - } - - if len(steamLib.Games) < g || g == -1 { - return errors.New("Cannot find game for index provided or no index provided") - } - - if *fileName == "export" { - fileName = &steamLib.Games[g] - } - - switch *compress { - case "gz": - return steamLib.PackageGameToFile(g, *fileName+".tar.gz", *compress) - default: - return steamLib.PackageGameToFile(g, *fileName+".tar", *compress) - } - -} - -func extractGame(args []string) error { - fl := flag.NewFlagSet("extract", errorHandling) - lib := fl.String("l", steam.DefaultLib, - "Path to library in question. All the way to the 'steamapps' folder") - fileName := fl.String("f", "", - "Name of the archive file to be extracted. Please include the file extension") - compress := fl.String("z", "gz", - "Compression type. Default 'gz' '' is no compression") - - l := steam.DefaultLib - fl.Parse(args) - if fl.Parsed() { - l = string(*lib) - } - - if err := steamLib.ProcessLibrary(l); err != nil { - return err - } - - if *fileName == "" { - return errors.New("No filename provided") - } - - return steamLib.ExtractGameFromFile(*fileName, *compress) - -} - -func deleteGame(args []string) error { - fl := flag.NewFlagSet("delete", errorHandling) - lib := fl.String("l", steam.DefaultLib, - "Path to library in question. All the way to the 'steamapps' folder") - game := fl.Int("g", -1, - "Index of the game to be deleted. Please see `list` for the index") - - var g int - l := steam.DefaultLib - fl.Parse(args) - if fl.Parsed() { - l = string(*lib) - g = int(*game) - } - - if err := steamLib.ProcessLibrary(l); err != nil { - return err - } - - if len(steamLib.Games) < g || g == -1 { - return errors.New("Cannot find game for index provided or no index provided") - } - - return steamLib.DeleteGame(g) -} - -func main() { - config, err := config.LoadConfig() - if err != nil { - fmt.Println(err) - } else { - if config.DefaultRepository != "" { - steam.DefaultLib = config.DefaultRepository - } - } - - if err := parseArgs(os.Args); err != nil { - fmt.Fprintln(os.Stderr, err) - printHelp() - } -} -- cgit v1.2.3