Mercurial > projects > sievemgr
comparison cmd/sievemgr/rename.go @ 7:3abc8be485c0
Add rename subcommand for renaming scripts on the server
author | Guido Berhoerster <guido+sievemgr@berhoerster.name> |
---|---|
date | Sat, 07 Nov 2020 16:48:55 +0100 |
parents | |
children | fc5e6970a0d5 |
comparison
equal
deleted
inserted
replaced
6:2130614cd64a | 7:3abc8be485c0 |
---|---|
1 // Copyright (C) 2020 Guido Berhoerster <guido+sievemgr@berhoerster.name> | |
2 // | |
3 // Permission is hereby granted, free of charge, to any person obtaining | |
4 // a copy of this software and associated documentation files (the | |
5 // "Software"), to deal in the Software without restriction, including | |
6 // without limitation the rights to use, copy, modify, merge, publish, | |
7 // distribute, sublicense, and/or sell copies of the Software, and to | |
8 // permit persons to whom the Software is furnished to do so, subject to | |
9 // the following conditions: | |
10 // | |
11 // The above copyright notice and this permission notice shall be included | |
12 // in all copies or substantial portions of the Software. | |
13 // | |
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
17 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
18 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
19 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
20 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
21 | |
22 package main | |
23 | |
24 func init() { | |
25 cmdRename.Flag.StringVar(&acctName, "a", "", "Select the account") | |
26 } | |
27 | |
28 var cmdRename = &command{ | |
29 UsageLine: "rename [options] old new", | |
30 Run: runRename, | |
31 } | |
32 | |
33 func runRename(cmd *command, args []string) error { | |
34 if len(args) != 2 { | |
35 return usageError("invalid number of arguments") | |
36 } | |
37 | |
38 oldName, newName := args[0], args[1] | |
39 | |
40 acct, err := getAccount(&conf, acctName) | |
41 if err != nil { | |
42 return err | |
43 } | |
44 | |
45 if err := lookupHostPort(acct); err != nil { | |
46 return err | |
47 } | |
48 | |
49 if err := readPassword(acct); err != nil { | |
50 return err | |
51 } | |
52 | |
53 c, err := dialPlainAuth(acct) | |
54 if err != nil { | |
55 return err | |
56 } | |
57 defer c.Logout() | |
58 | |
59 err = c.RenameScript(oldName, newName) | |
60 if err != nil { | |
61 return err | |
62 } | |
63 | |
64 return nil | |
65 } |