Mercurial > projects > sievemgr
annotate cmd/sievemgr/main.go @ 19:854167f55839
Fix SRV record lookup
Do not use a configuration file default value for port in order to detect when
it is not set by the user so that SRV record lookup is triggered.
Depend on version 0.8.1 of go.guido-berhoerster.org/managesieve which contains
an additional necessary fix.
author | Guido Berhoerster <guido+sievemgr@berhoerster.name> |
---|---|
date | Wed, 03 Feb 2021 13:34:44 +0100 |
parents | 44c07eb8ef08 |
children | fc5e6970a0d5 |
rev | line source |
---|---|
1
0cd5a454dfb4
Add README file
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
0
diff
changeset
|
1 // Copyright (C) 2020 Guido Berhoerster <guido+sievemgr@berhoerster.name> |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
2 // |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
3 // Permission is hereby granted, free of charge, to any person obtaining |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
4 // a copy of this software and associated documentation files (the |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
5 // "Software"), to deal in the Software without restriction, including |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
6 // without limitation the rights to use, copy, modify, merge, publish, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
7 // distribute, sublicense, and/or sell copies of the Software, and to |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
8 // permit persons to whom the Software is furnished to do so, subject to |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
9 // the following conditions: |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
10 // |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
11 // The above copyright notice and this permission notice shall be included |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
12 // in all copies or substantial portions of the Software. |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
13 // |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
17 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
18 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
19 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
20 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
21 |
10
44c07eb8ef08
Add man subcommand to display the user manual
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
8
diff
changeset
|
22 //go:generate go run gendocstr.go . code.guido-berhoerster.org/go/sievemgr docText docstr.go |
44c07eb8ef08
Add man subcommand to display the user manual
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
8
diff
changeset
|
23 |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
24 package main |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
25 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
26 import ( |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
27 "errors" |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
28 "flag" |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
29 "fmt" |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
30 "os" |
5
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
31 |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
32 "go.guido-berhoerster.org/sievemgr/cmd/sievemgr/internal/config" |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
33 ) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
34 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
35 const ( |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
36 exitSuccess = iota |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
37 exitFailure |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
38 exitUsage |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
39 ) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
40 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
41 type usageError string |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
42 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
43 func (e usageError) Error() string { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
44 return string(e) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
45 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
46 |
5
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
47 // command-line flags |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
48 var ( |
5
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
49 confFilename string |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
50 acctName string |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
51 ) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
52 |
5
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
53 var conf config.Configuration |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
54 |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
55 func init() { |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
56 var err error |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
57 confFilename, err = config.DefaultFilename() |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
58 if err != nil { |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
59 fmt.Fprintln(flag.CommandLine.Output(), err) |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
60 os.Exit(exitFailure) |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
61 } |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
62 } |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
63 |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
64 var cmds = []*command{ |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
65 cmdList, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
66 cmdPut, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
67 cmdGet, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
68 cmdActivate, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
69 cmdDeactivate, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
70 cmdDelete, |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
71 cmdInfo, |
4
f925f15d8ce5
Add check subcommand for checking the script validity
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
1
diff
changeset
|
72 cmdCheck, |
6
2130614cd64a
Add checkspace subcommand for querying the server for sufficient space
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
5
diff
changeset
|
73 cmdCheckSpace, |
7
3abc8be485c0
Add rename subcommand for renaming scripts on the server
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
6
diff
changeset
|
74 cmdRename, |
8
8caacf702c0d
Add edit subcommand for interactive editing of a script
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
7
diff
changeset
|
75 cmdEdit, |
10
44c07eb8ef08
Add man subcommand to display the user manual
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
8
diff
changeset
|
76 cmdMan, |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
77 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
78 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
79 func usage() { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
80 fmt.Fprintf(flag.CommandLine.Output(), |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
81 "usage:\n %s [options] [subcommand [options] [arguments]]\n", |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
82 flag.CommandLine.Name()) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
83 fmt.Fprintln(flag.CommandLine.Output(), "subcommands:") |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
84 for _, cmd := range cmds { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
85 fmt.Fprintf(flag.CommandLine.Output(), " %s\n", cmd.Name()) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
86 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
87 fmt.Fprintln(flag.CommandLine.Output(), "global options:") |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
88 flag.PrintDefaults() |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
89 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
90 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
91 func main() { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
92 flag.Usage = usage |
5
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
93 flag.StringVar(&confFilename, "f", confFilename, |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
94 "Set the name of the configuration file") |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
95 flag.Parse() |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
96 if flag.NArg() == 0 { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
97 fmt.Fprintln(flag.CommandLine.Output(), "missing subcommand") |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
98 usage() |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
99 os.Exit(exitUsage) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
100 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
101 |
5
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
102 if err := config.ParseFile(confFilename, &conf); err != nil { |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
103 fmt.Fprintln(flag.CommandLine.Output(), err) |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
104 os.Exit(exitFailure) |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
105 } |
4dff4c3f0fbb
Introduce configuration file where account information is specified
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
4
diff
changeset
|
106 |
0
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
107 name := flag.Arg(0) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
108 var cmd *command |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
109 for _, c := range cmds { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
110 if c.Name() == name { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
111 cmd = c |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
112 break |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
113 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
114 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
115 if cmd == nil { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
116 fmt.Fprintf(flag.CommandLine.Output(), |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
117 "unknown subcommand %q\n", name) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
118 usage() |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
119 os.Exit(exitUsage) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
120 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
121 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
122 cmd.Flag.Init(cmd.Name(), flag.ExitOnError) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
123 cmd.Flag.Usage = cmd.Usage |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
124 args := flag.Args() |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
125 if err := cmd.Flag.Parse(args[1:]); err != nil { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
126 fmt.Fprintln(flag.CommandLine.Output(), err) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
127 os.Exit(exitFailure) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
128 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
129 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
130 if err := cmd.Run(cmd, cmd.Flag.Args()); err != nil { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
131 fmt.Fprintln(flag.CommandLine.Output(), err) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
132 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
133 var uerr usageError |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
134 if errors.As(err, &uerr) { |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
135 cmd.Usage() |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
136 os.Exit(exitUsage) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
137 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
138 |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
139 os.Exit(exitFailure) |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
140 } |
b00673734e58
Initial revision
Guido Berhoerster <guido+sievemgr@berhoerster.name>
parents:
diff
changeset
|
141 } |