INNER CODE UNIT · Go
server
welovemedia/ffmate · cmd/server.go:58
func server(_ *cobra.Command, _ []string) {
// resolve database paths if needed
dbPath := viper.GetString("database")
if !strings.HasPrefix(dbPath, "postgresql://") && !strings.Contains(dbPath, ":memory:") {
if strings.HasPrefix(dbPath, "~") {
dbPath = filepath.Join(os.Getenv("HOME"), dbPath[1:])
}
if strings.HasPrefix(dbPath, "%APPDATA%") {
dbPath = strings.ReplaceAll(dbPath, "%APPDATA%", os.Getenv("APPDATA"))
}
if err := os.MkdirAll(filepath.Dir(dbPath), os.ModePerm); err != nil {
debug.Log.Error("failed to create database folder (path: %s): %v", filepath.Dir(dbPath), err)
os.Exit(1)
} else {
viper.Set("database", dbPath)
}
}