diff options
| author | Mitch Riedstra <mitch@riedstra.us> | 2017-02-05 17:04:39 -0500 |
|---|---|---|
| committer | Mitch Riedstra <mitch@riedstra.us> | 2017-02-05 17:04:39 -0500 |
| commit | 9ff47bdc17c70f87c78520d0636b2ff22918a408 (patch) | |
| tree | d4cc59dbd5fd017cdcb2dbbc2fdbe239854bcd28 /steam-export-cli.go | |
| parent | 0e346bf5ad4852db5db82343b2aca5911c38ad00 (diff) | |
| download | steam-export-9ff47bdc17c70f87c78520d0636b2ff22918a408.tar.gz steam-export-9ff47bdc17c70f87c78520d0636b2ff22918a408.tar.xz | |
Rename steam-export-cli.go -> cli.go
Diffstat (limited to 'steam-export-cli.go')
| -rw-r--r-- | steam-export-cli.go | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/steam-export-cli.go b/steam-export-cli.go deleted file mode 100644 index af0654d..0000000 --- a/steam-export-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() - } -} |
