diff --git a/config/options.go b/config/options.go index 1abf9ee..57f08cd 100644 --- a/config/options.go +++ b/config/options.go @@ -1,56 +1,71 @@ package config import ( + "net/url" + "github.com/cloudfoundry/jibber_jabber" "github.com/writeas/writeas-cli/log" cli "gopkg.in/urfave/cli.v1" ) // Application constants. const ( Version = "2.0" defaultUserAgent = "writeas-cli v" + Version // Defaults for posts on Write.as. DefaultFont = PostFontMono WriteasBaseURL = "https://write.as" DevBaseURL = "https://development.write.as" TorBaseURL = "http://writeas7pm7rcdqg.onion" ) func UserAgent(c *cli.Context) string { ua := c.String("user-agent") if ua == "" { return defaultUserAgent } return ua + " (" + defaultUserAgent + ")" } func IsTor(c *cli.Context) bool { return c.Bool("tor") || c.Bool("t") } func Language(c *cli.Context, auto bool) string { if l := c.String("lang"); l != "" { return l } if !auto { return "" } // Automatically detect language l, err := jibber_jabber.DetectLanguage() if err != nil { log.Info(c, "Language detection failed: %s", err) return "" } return l } func Collection(c *cli.Context) string { if coll := c.String("c"); coll != "" { return coll } if coll := c.String("b"); coll != "" { return coll } return "" } + +// HostDirectory returns the sub directory string for the host flag if set +func HostDirectory(c *cli.Context) (string, error) { + if host := c.GlobalString("host"); host != "" { + u, err := url.Parse(host) + if err != nil { + return "", err // TODO + } + return u.Hostname(), nil + } + + return "", nil +}