translate errors in comitium.go
This commit is contained in:
+39
-23
@@ -28,21 +28,15 @@ var supportedLangs = []language.Tag{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
argCheck(os.Args, 2, true, "Please provide a command.")
|
// figure out what language to use (just getting $LANG if set since flags
|
||||||
|
// aren't parsed yet)
|
||||||
|
localizer := getLang()
|
||||||
|
|
||||||
// these are special cases where we shouldn't bother to do anything else
|
argCheck(os.Args, 2, true, localizer.Get("errors.no_command"))
|
||||||
if os.Args[1] == "help" {
|
|
||||||
usage()
|
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
if os.Args[1] == "version" {
|
|
||||||
fmt.Printf("comitium v%v, commit %v\n", core.Version, core.Commit)
|
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
c, ok := commands[os.Args[1]]
|
c, ok := commands[os.Args[1]]
|
||||||
if !ok {
|
if !ok {
|
||||||
fmt.Fprint(os.Stderr, "Unrecognized Command.\n\n")
|
fmt.Fprint(os.Stderr, core.TranslateStringLocalizer(localizer, "%s\n\n", "errors.bad_command", nil))
|
||||||
usage()
|
usage()
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
@@ -50,34 +44,53 @@ func main() {
|
|||||||
c.AddFlagSet(globalFs)
|
c.AddFlagSet(globalFs)
|
||||||
c.Parse(os.Args[2:])
|
c.Parse(os.Args[2:])
|
||||||
|
|
||||||
// figure out what language to use
|
// figure out what language to use now that flags are parsed
|
||||||
localizer := getLang()
|
localizer = getLang()
|
||||||
|
|
||||||
|
// these are special cases where we shouldn't try to touch data paths
|
||||||
|
if os.Args[1] == "help" {
|
||||||
|
usage()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
if os.Args[1] == "version" {
|
||||||
|
fmt.Printf(core.TranslateStringLocalizer(
|
||||||
|
localizer, "%s\n", "errors.version",
|
||||||
|
&localizations.Replacements{"version": core.Version, "commit": core.Commit},
|
||||||
|
))
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
// dataPath is the location where all the data (list of subs, cached hashes,
|
// dataPath is the location where all the data (list of subs, cached hashes,
|
||||||
// etcetera) are stored
|
// etcetera) are stored
|
||||||
dataPath := getDataPath()
|
dataPath := getDataPath(localizer)
|
||||||
// make sure it exists so we can start working with files in it
|
// make sure it exists so we can start working with files in it
|
||||||
os.MkdirAll(dataPath, os.ModePerm)
|
os.MkdirAll(dataPath, os.ModePerm)
|
||||||
|
|
||||||
err := core.Init(dataPath, localizer)
|
err := core.Init(dataPath, localizer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Error in initialization: %v\n", err)
|
fmt.Fprintf(os.Stderr, core.TranslateStringLocalizer(
|
||||||
|
localizer, "%s\n",
|
||||||
|
"errors.core_init", &localizations.Replacements{"error": err},
|
||||||
|
))
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch os.Args[1] {
|
switch os.Args[1] {
|
||||||
case "refresh":
|
case "refresh":
|
||||||
argCheck(c.Args(), 0, false, "'refresh' doesn't take an argument!")
|
argCheck(c.Args(), 0, false, core.TranslateString("'refresh' %s", "errors.no_argument", nil))
|
||||||
core.Timeout = *refreshTimeoutFlag
|
core.Timeout = *refreshTimeoutFlag
|
||||||
fetch.RefreshAll(&core.Data, *refreshWorkersFlag)
|
fetch.RefreshAll(&core.Data, *refreshWorkersFlag)
|
||||||
case "regenerate":
|
case "regenerate":
|
||||||
argCheck(c.Args(), 0, false, "'regenerate' doesn't take an argument!")
|
argCheck(c.Args(), 0, false, core.TranslateString("'regenerate' %s", "errors.no_argument", nil))
|
||||||
case "add":
|
case "add":
|
||||||
argCheck(c.Args(), 1, true, "Please provide a URL to add.")
|
argCheck(c.Args(), 1, true, localizer.Get("errors.no_url_add"))
|
||||||
|
|
||||||
remote, err := url.Parse(c.Arg(0))
|
remote, err := url.Parse(c.Arg(0))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Error parsing URL: %v\n", err)
|
fmt.Fprintf(os.Stderr, core.TranslateString(
|
||||||
|
"%s\n", "errors.url_parse",
|
||||||
|
&localizations.Replacements{"error": err},
|
||||||
|
))
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,11 +100,14 @@ func main() {
|
|||||||
err = fetch.Feed(&core.Data, remote, c.Arg(1))
|
err = fetch.Feed(&core.Data, remote, c.Arg(1))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Error adding URL: %v\n", err)
|
fmt.Fprintf(os.Stderr, core.TranslateString(
|
||||||
|
"%s\n", "errors.url_add",
|
||||||
|
&localizations.Replacements{"error": err},
|
||||||
|
))
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
case "remove":
|
case "remove":
|
||||||
argCheck(c.Args(), 1, false, "Please provide a URL to remove.")
|
argCheck(c.Args(), 1, false, localizer.Get("errors.no_url_remove"))
|
||||||
if (!*removeFeedsFlag && !*removePagesFlag) || *removeFeedsFlag {
|
if (!*removeFeedsFlag && !*removePagesFlag) || *removeFeedsFlag {
|
||||||
delete(core.Data.Feeds, c.Arg(0))
|
delete(core.Data.Feeds, c.Arg(0))
|
||||||
}
|
}
|
||||||
@@ -140,7 +156,7 @@ func verifyPath(p string) string {
|
|||||||
// the first that exists:
|
// the first that exists:
|
||||||
// --data flag, $COMITIUM_DATA, $XDG_DATA_HOME/comitium,
|
// --data flag, $COMITIUM_DATA, $XDG_DATA_HOME/comitium,
|
||||||
// $HOME/.local/share/comitium, $HOME/.comitium, $PWD (last resort)
|
// $HOME/.local/share/comitium, $HOME/.comitium, $PWD (last resort)
|
||||||
func getDataPath() string {
|
func getDataPath(localizer *localizations.Localizer) string {
|
||||||
if *dataFlag != "" {
|
if *dataFlag != "" {
|
||||||
return verifyPath(*dataFlag)
|
return verifyPath(*dataFlag)
|
||||||
}
|
}
|
||||||
@@ -160,7 +176,7 @@ func getDataPath() string {
|
|||||||
return verifyPath(home + "/.comitium")
|
return verifyPath(home + "/.comitium")
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Fprintln(os.Stderr, "Error finding a suitable directory! Falling back to the current working directory. See \"comitium help\" or comitium(1) for more information.")
|
fmt.Fprintln(os.Stderr, localizer.Get("errors.no_data_dir"))
|
||||||
return verifyPath("comitium")
|
return verifyPath("comitium")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ var commands = map[string]*flag.FlagSet{
|
|||||||
"regenerate": flag.NewFlagSet("regenerate", flag.ExitOnError),
|
"regenerate": flag.NewFlagSet("regenerate", flag.ExitOnError),
|
||||||
"add": flag.NewFlagSet("add", flag.ExitOnError),
|
"add": flag.NewFlagSet("add", flag.ExitOnError),
|
||||||
"remove": flag.NewFlagSet("remove", flag.ExitOnError),
|
"remove": flag.NewFlagSet("remove", flag.ExitOnError),
|
||||||
|
"help": flag.NewFlagSet("help", flag.ExitOnError),
|
||||||
|
"version": flag.NewFlagSet("version", flag.ExitOnError),
|
||||||
}
|
}
|
||||||
|
|
||||||
// set up various flags for each individual command
|
// set up various flags for each individual command
|
||||||
|
|||||||
Reference in New Issue
Block a user