package main import ( "errors" "flag" "fmt" "os" "git.riedstra.us/mitch/steam-export/steam" ) var ( errorHandling flag.ErrorHandling = flag.ExitOnError defaultLib string = "C:\\Program Files (x86)\\Steam\\steamapps" steamLib *steam.Library = &steam.Library{} ) func parseArgs(args []string) error { if len(args) < 2 { return errors.New("Not enough arguments") } switch a := args[1]; a { case "list": return listGames(args[2:]) default: printHelp() } return nil } func printHelp() { fmt.Printf(`Program usage: steam-export-cli $subcommand $options Subcommands: list -l $steam_library package -l $steam_library -f $output_file [ -G $game_index | -g "game_name" ] extract -l $steam_library -f $input_file delete -l $steam_library [ -G $game_index | -g $game_name ] server -c $config_file -l $steam_library -L $listen_addr`) } func listGames(args []string) error { fl := flag.NewFlagSet("list", errorHandling) lib := fl.String("l", defaultLib, "Path to library in question. All the way to the 'steamapps' folder") l := 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 main() { if err := parseArgs(os.Args); err != nil { fmt.Fprintln(os.Stderr, err) printHelp() } }