79 lines
1.4 KiB
Go
79 lines
1.4 KiB
Go
package global
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"arimelody.me/arimelody.me/music/model"
|
|
"github.com/jmoiron/sqlx"
|
|
)
|
|
|
|
var Args = func() map[string]string {
|
|
args := map[string]string{}
|
|
|
|
index := 0
|
|
for index < len(os.Args[1:]) {
|
|
arg := os.Args[index + 1]
|
|
if !strings.HasPrefix(arg, "-") {
|
|
fmt.Printf("FATAL: Parameters must follow an argument (%s).\n", arg)
|
|
os.Exit(1)
|
|
}
|
|
|
|
if index + 3 > len(os.Args) || strings.HasPrefix(os.Args[index + 2], "-") {
|
|
args[arg[1:]] = "true"
|
|
index += 1
|
|
continue
|
|
}
|
|
|
|
val := os.Args[index + 2]
|
|
args[arg[1:]] = val
|
|
// fmt.Printf("%s: %s\n", arg[1:], val)
|
|
index += 2
|
|
}
|
|
|
|
return args
|
|
}()
|
|
|
|
|
|
var HTTP_DOMAIN = func() string {
|
|
envvar := os.Getenv("HTTP_DOMAIN")
|
|
if envvar != "" {
|
|
return envvar
|
|
}
|
|
return "https://arimelody.me"
|
|
}()
|
|
|
|
var DB *sqlx.DB
|
|
|
|
var Releases []*model.Release
|
|
var Artists []*model.Artist
|
|
var Tracks []*model.Track
|
|
|
|
func GetRelease(id string) *model.Release {
|
|
for _, release := range Releases {
|
|
if release.ID == id {
|
|
return release
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func GetArtist(id string) *model.Artist {
|
|
for _, artist := range Artists {
|
|
if artist.ID == id {
|
|
return artist
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func GetTrack(id string) *model.Track {
|
|
for _, track := range Tracks {
|
|
if track.ID == id {
|
|
return track
|
|
}
|
|
}
|
|
return nil
|
|
}
|