2022-02-12 13:52:38 +01:00
|
|
|
package cli
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"flag"
|
2022-02-15 14:59:57 +01:00
|
|
|
"os"
|
2022-02-12 13:52:38 +01:00
|
|
|
|
|
|
|
"git.rdelaage.ovh/rdelaage/cyanocorax/version"
|
2022-02-14 10:26:10 +01:00
|
|
|
"git.rdelaage.ovh/rdelaage/cyanocorax/manage"
|
2022-02-15 14:59:57 +01:00
|
|
|
"git.rdelaage.ovh/rdelaage/cyanocorax/render/gemini"
|
2022-02-12 13:52:38 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
2022-02-14 10:26:10 +01:00
|
|
|
flagInfoHelp = "Show application information"
|
2022-02-12 13:52:38 +01:00
|
|
|
flagVersionHelp = "Show application version"
|
2022-02-14 10:26:10 +01:00
|
|
|
flagSiteHelp = "Set site file path"
|
2022-02-12 13:52:38 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
func Parse() {
|
|
|
|
var (
|
2022-02-14 10:26:10 +01:00
|
|
|
flagInfo bool
|
2022-02-12 13:52:38 +01:00
|
|
|
flagVersion bool
|
2022-02-14 10:26:10 +01:00
|
|
|
flagSite string
|
2022-02-12 13:52:38 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
flag.BoolVar(&flagInfo, "info", false, flagInfoHelp)
|
|
|
|
flag.BoolVar(&flagInfo, "i", false, flagInfoHelp)
|
|
|
|
flag.BoolVar(&flagVersion, "version", false, flagVersionHelp)
|
|
|
|
flag.BoolVar(&flagVersion, "v", false, flagVersionHelp)
|
2022-02-14 10:26:10 +01:00
|
|
|
flag.StringVar(&flagSite, "site", "", flagSiteHelp)
|
|
|
|
flag.StringVar(&flagSite, "s", "", flagSiteHelp)
|
2022-02-12 13:52:38 +01:00
|
|
|
|
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
if flagInfo {
|
|
|
|
info()
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
if flagVersion {
|
|
|
|
fmt.Println(version.Version)
|
|
|
|
return
|
|
|
|
}
|
2022-02-14 10:26:10 +01:00
|
|
|
|
|
|
|
if flagSite == "" {
|
|
|
|
fmt.Println("Flag site must be set")
|
2022-02-15 14:59:57 +01:00
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
site, err := manage.SiteFromFile(flagSite)
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Failed to parse site file", err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
err = gemini.Render(site)
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("Failed to render this site", err)
|
|
|
|
os.Exit(1)
|
2022-02-14 10:26:10 +01:00
|
|
|
}
|
2022-02-12 13:52:38 +01:00
|
|
|
}
|