Add path generator

This commit is contained in:
Radhi Fadlillah 2019-08-06 16:24:05 +07:00
parent 6eb8c749a5
commit 106266e87d
3 changed files with 39 additions and 0 deletions

1
go.mod
View File

@ -15,6 +15,7 @@ require (
github.com/mattn/go-colorable v0.1.1 // indirect
github.com/mattn/go-isatty v0.0.7 // indirect
github.com/mattn/go-sqlite3 v1.10.0
github.com/muesli/go-app-paths v0.0.0-20181030220709-913f7f7ac60f
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/shurcooL/httpfs v0.0.0-20181222201310-74dc9339e414 // indirect
github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd

3
go.sum
View File

@ -50,8 +50,11 @@ github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/muesli/go-app-paths v0.0.0-20181030220709-913f7f7ac60f h1:qC86+y8MoTDwlkAeS4p8fuo9nzKtZV/Gg9Nbqeu1+LM=
github.com/muesli/go-app-paths v0.0.0-20181030220709-913f7f7ac60f/go.mod h1:YIG7FlQLGglsbGA+CX6/boYl9aNdoQXfx+ZtACJCMug=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=

35
path-generator.go Normal file
View File

@ -0,0 +1,35 @@
// +build !dev
package main
import (
"os"
apppaths "github.com/muesli/go-app-paths"
)
func init() {
// Get data directory
dataDir = getDataDirectory()
// Make sure directory exist
os.MkdirAll(dataDir, os.ModePerm)
}
func getDataDirectory() string {
// Try to look at environment variables
dataDir, found := os.LookupEnv("ENV_SHIORI_DIR")
if found {
return dataDir
}
// Try to use platform specific app path
userScope := apppaths.NewScope(apppaths.User, "shiori", "shiori")
dataDir, err := userScope.DataDir()
if err == nil {
return dataDir
}
// When all fail, use current working directory
return "."
}