package cli import ( "fmt" "flag" "os" "git.rdelaage.ovh/rdelaage/cyanocorax/version" "git.rdelaage.ovh/rdelaage/cyanocorax/manage" "git.rdelaage.ovh/rdelaage/cyanocorax/render/gemini" ) const ( flagInfoHelp = "Show application information" flagVersionHelp = "Show application version" flagSiteHelp = "Set site file path" ) func Parse() { var ( flagInfo bool flagVersion bool flagSite string ) flag.BoolVar(&flagInfo, "info", false, flagInfoHelp) flag.BoolVar(&flagInfo, "i", false, flagInfoHelp) flag.BoolVar(&flagVersion, "version", false, flagVersionHelp) flag.BoolVar(&flagVersion, "v", false, flagVersionHelp) flag.StringVar(&flagSite, "site", "", flagSiteHelp) flag.StringVar(&flagSite, "s", "", flagSiteHelp) flag.Parse() if flagInfo { info() return } if flagVersion { fmt.Println(version.Version) return } if flagSite == "" { fmt.Println("Flag site must be set") 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) } }