package main import ( "io/fs" "os" "riedstra.dev/mitch/steam-export/steam" ) // // statusInfo represents the internal status of game installation // type statusInfo struct { // sync.RWMutex // Running bool // Error error // Url string // Transferred int64 // Size int64 // Start *time.Time // } // App binds together the steam library, templates, and channel for install // requests as well as most the app specific http handlers. type App struct { Library *steam.Library // Whether or not we're running in demo mode Demo bool ShareLink string Version string templateFS fs.FS staticFS fs.FS // download chan string } // NewApp sets up the steam library for us as well as parses the embedded // template func NewApp(libPath string) (*App, error) { lib, err := steam.NewLibrary(libPath) if err != nil { return nil, err } a := &App{ Library: lib, Version: Version, ShareLink: getShareLink(), // download: make(chan string), templateFS: TemplateFS, staticFS: StaticFS, } return a, nil } func (a *App) useLocalFS(pth string) { a.templateFS = os.DirFS(pth) a.staticFS = a.templateFS }