diff options
author | Tulir Asokan <tulir@maunium.net> | 2020-04-08 15:49:42 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2020-04-08 15:49:42 +0300 |
commit | 79b61b86c9b5cd403c5ff3efcaf5a7237a1c07c7 (patch) | |
tree | 521b0ed709cab428e463d15d69a3a6f40358853c | |
parent | a6f6fb3ef22658508671296a31367a198205da99 (diff) |
Use $HOME/Downloads as default download directory
TODO: Get the default directory properly with XDG
-rw-r--r-- | config/config.go | 5 | ||||
-rw-r--r-- | gomuks.go | 4 | ||||
-rw-r--r-- | main.go | 13 |
3 files changed, 16 insertions, 6 deletions
diff --git a/config/config.go b/config/config.go index 3507833..e62a8bd 100644 --- a/config/config.go +++ b/config/config.go @@ -78,16 +78,15 @@ type Config struct { } // NewConfig creates a config that loads data from the given directory. -func NewConfig(configDir, cacheDir string) *Config { - home, _ := os.UserHomeDir() +func NewConfig(configDir, cacheDir, downloadDir string) *Config { return &Config{ Dir: configDir, CacheDir: cacheDir, + DownloadDir: downloadDir, HistoryPath: filepath.Join(cacheDir, "history.db"), RoomListPath: filepath.Join(cacheDir, "rooms.gob.gz"), StateDir: filepath.Join(cacheDir, "state"), MediaDir: filepath.Join(cacheDir, "media"), - DownloadDir: home, RoomCacheSize: 32, RoomCacheAge: 1 * 60, @@ -38,12 +38,12 @@ type Gomuks struct { // NewGomuks creates a new Gomuks instance with everything initialized, // but does not start it. -func NewGomuks(uiProvider ifc.UIProvider, configDir, cacheDir string) *Gomuks { +func NewGomuks(uiProvider ifc.UIProvider, configDir, cacheDir, downloadDir string) *Gomuks { gmx := &Gomuks{ stop: make(chan bool, 1), } - gmx.config = config.NewConfig(configDir, cacheDir) + gmx.config = config.NewConfig(configDir, cacheDir, downloadDir) gmx.ui = uiProvider(gmx) gmx.matrix = matrix.NewContainer(gmx) @@ -58,8 +58,14 @@ func main() { fmt.Fprintln(os.Stderr, "Failed to get cache directory:", err) os.Exit(3) } + downloadDir, err := UserDownloadDir() + if err != nil { + fmt.Fprintln(os.Stderr, "Failed to get download directory:", err) + os.Exit(3) + } - gmx := NewGomuks(MainUIProvider, configDir, cacheDir) + + gmx := NewGomuks(MainUIProvider, configDir, cacheDir, downloadDir) gmx.Start() // We use os.Exit() everywhere, so exiting by returning from Start() shouldn't happen. @@ -77,6 +83,11 @@ func UserCacheDir() (dir string, err error) { return } +func UserDownloadDir() (dir string, err error) { + dir = os.Getenv("HOME") + return filepath.Join(dir, "Downloads"), nil +} + func UserConfigDir() (dir string, err error) { dir = os.Getenv("GOMUKS_CONFIG_HOME") if dir != "" { |