mirror of
https://github.com/go-shiori/shiori.git
synced 2024-09-20 15:06:14 +08:00
a60dbf3dc5
* config: backwards comptabile dir * remove duplicated frontend * frontend: move assets to assets folder * legacy routes handler in gin * templates and asset in different embed * new routes * frontend routes serve old views * added DTO for account object * api auth calls legacy handler * frontend: handle new error messages * frontend: update urls * frontend: login using new api * updated frontend tests * chore: remove debug route * create shiori/gopher user if no owner is present * server as default command * serve -> server * refactored database logic, allow database url * removed unused configuration * storage docs * refactor cli to use cfg and deps * check errors only in server * log fatal instead of os exit * dont default data directory to current dir * fixed sqlite path * trigger build on prs * avoid releasing if lint/test fails * pull request condition * event -> event_name * Get correct pull request number * added workflow to delete dangling tags * fix: nil error checking * set gin mode first * set gin mode before initialization * fix logger * allow version bump from custom ref * Updated matrix link to workspace
32 lines
634 B
Go
32 lines
634 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
gap "github.com/muesli/go-app-paths"
|
|
)
|
|
|
|
func getStorageDirectory(portableMode bool) (string, error) {
|
|
// If in portable mode, uses directory of executable
|
|
if portableMode {
|
|
exePath, err := os.Executable()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
exeDir := filepath.Dir(exePath)
|
|
return filepath.Join(exeDir, "shiori-data"), nil
|
|
}
|
|
|
|
// Try to use platform specific app path
|
|
userScope := gap.NewScope(gap.User, "shiori")
|
|
dataDir, err := userScope.DataPath("")
|
|
if err == nil {
|
|
return dataDir, nil
|
|
}
|
|
|
|
return "", fmt.Errorf("couldn't determine the data directory")
|
|
}
|