cyanocorax/cli/cli.go

62 lines
1.2 KiB
Go
Raw Normal View History

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
}