From 9d5d130038ed90564c3acfb2fd2ff64e3d7b0bd9 Mon Sep 17 00:00:00 2001 From: Mitchell Riedstra Date: Mon, 9 Aug 2021 21:11:52 -0400 Subject: Fix up cli. Continue fixing up the library and web app. Initial API spec --- cmd/cli/main.go | 58 +++++++++++++++++++++++++++-------------------------- cmd/web/handlers.go | 38 ++++++++++++++++++----------------- cmd/web/main.go | 9 ++++++--- 3 files changed, 56 insertions(+), 49 deletions(-) (limited to 'cmd') diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 8bb9a24..4613f89 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -9,7 +9,7 @@ import ( "riedstra.dev/mitch/steam-export/steam" ) -var Version = "Development" +var Version = "Development" func parseArgs(args []string) error { if len(args) < 2 { @@ -55,12 +55,12 @@ func listGames(args []string) error { fl.Parse(args) - steamLib := &steam.Library{} - if err := steamLib.ProcessLibrary(*lib); err != nil { + l, err := steam.NewLibrary(*lib) + if err != nil { return err } - fmt.Println(steamLib) + fmt.Println(l) return nil } @@ -78,23 +78,18 @@ func packageGame(args []string) error { return errors.New("You need to specify a file name") } - lib := &steam.Library{} - if err := lib.ProcessLibrary(*libPth); err != nil { + lib, err := steam.NewLibrary(*libPth) + if err != nil { return err } - G, ok := lib.Games[*game] - if !ok { - return errors.New("Game does not exist") - } - f, err := os.OpenFile(*fileName, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0664) if err != nil { return err } defer f.Close() - err = G.Package(f) + err = lib.Package(*game, f) if err != nil { return err } @@ -111,18 +106,30 @@ func extractGame(args []string) error { fl.Parse(args) - lib := &steam.Library{} - - if err := lib.ProcessLibrary(*libPath); err != nil { - return err - } - - fh, err := os.Open(*fileName) + lib, err := steam.NewLibrary(*libPath) if err != nil { return err } - return lib.Extract(fh) + /* + fh, err := os.Open(*fileName) + if err != nil { + return err + } + + g, err := lib.Extract(fh) + if err != nil { + return err + } + + err = fh.Close() + */ + + g, err := lib.ExtractFile(*fileName) + + fmt.Println("Extracted: ", g) + + return err } func deleteGame(args []string) error { @@ -133,18 +140,13 @@ func deleteGame(args []string) error { fl.Parse(args) - lib := &steam.Library{} + lib, err := steam.NewLibrary(*libPath) - if err := lib.ProcessLibrary(*libPath); err != nil { + if err != nil { return err } - G, ok := lib.Games[*game] - if !ok { - return errors.New("Game does not exist") - } - - return G.Delete() + return lib.Delete(*game) } func main() { diff --git a/cmd/web/handlers.go b/cmd/web/handlers.go index fca7471..763c980 100644 --- a/cmd/web/handlers.go +++ b/cmd/web/handlers.go @@ -5,9 +5,9 @@ import ( "fmt" "html/template" "net/http" - "net/url" + // "net/url" "os" - "strings" + // "strings" "time" "github.com/gorilla/mux" @@ -50,24 +50,26 @@ func (a *App) HandleInstall(w http.ResponseWriter, r *http.Request) { uri := r.Form.Get("uri") - // Sanity checking on our end before we pass it off - if strings.HasPrefix(uri, "http") { - _, err := url.Parse(uri) - if err != nil { - Logger.Printf("Installer: While parsing url: %s", err) - http.Error(w, fmt.Sprintf("Invalid url: %s", err), 400) - return - } - } else { - fi, err := os.Stat(uri) - if err != nil || !fi.Mode().IsRegular() { - Logger.Printf("Installer: While parsing url/path: %s", err) - http.Error(w, fmt.Sprintf("Invalid uri/path: %s", err), 400) - return + /* + // Sanity checking on our end before we pass it off + if strings.HasPrefix(uri, "http") { + _, err := url.Parse(uri) + if err != nil { + Logger.Printf("Installer: While parsing url: %s", err) + http.Error(w, fmt.Sprintf("Invalid url: %s", err), 400) + return + } + } else { + fi, err := os.Stat(uri) + if err != nil || !fi.Mode().IsRegular() { + Logger.Printf("Installer: While parsing url/path: %s", err) + http.Error(w, fmt.Sprintf("Invalid uri/path: %s", err), 400) + return + } } - } + */ - Logger.Printf("Installer: Sending request for: %s to channel", uri) + Logger.Printf("Installer: Sending request for: %s to downloader", uri) go func() { g, err := a.Library.ExtractSmart(uri) diff --git a/cmd/web/main.go b/cmd/web/main.go index 20c3506..fdefa1b 100644 --- a/cmd/web/main.go +++ b/cmd/web/main.go @@ -30,7 +30,7 @@ var ( func main() { fl := flag.NewFlagSet("steam-export", flag.ExitOnError) debug := fl.Bool("d", false, "Print line numbers in log") - fl.StringVar(&Listen, "l", Listen, "What address do we listen on?") + fl.StringVar(&Listen, "l", Listen, "What address/port do we listen on?") fl.StringVar(&DefaultLib, "L", DefaultLib, "Full path to default library") fl.StringVar(&isLocalCIDR, "t", isLocalCIDR, "Trusted CIDRs for additional controls, seperated by commas") @@ -40,6 +40,7 @@ func main() { localFS := fl.String("fs", "", "If not empty the local path to use instead of the "+ "embedded templates and /static directory.") + noStartBrowser := fl.Bool("nobrowser", false, "If supplied, do not start the browser") fl.Parse(os.Args[1:]) if *debug { @@ -80,8 +81,10 @@ func main() { continue } - // Not using 'localhost' due to the way windows listens by default - startBrowser("http://127.0.0.1" + Listen) + if !*noStartBrowser { + // Not using 'localhost' due to the way windows listens by default + startBrowser("http://127.0.0.1" + Listen) + } err = s.Serve(l) if err != nil { -- cgit v1.2.3