summary refs log tree commit diff stats
path: root/commands
diff options
context:
space:
mode:
authorGalen Abell <galen@galenabell.com>2019-07-27 10:38:53 -0400
committerDrew DeVault <sir@cmpwn.com>2019-07-27 12:37:55 -0400
commit0ee7d30187920751c6e79facbd87ebce86d62ec9 (patch)
tree3b56110366eb95e40049fef851747f42ff53e4c9 /commands
parenta669233614d3b4134baabd3325cb64e8f0f2cdeb (diff)
downloadaerc-0ee7d30187920751c6e79facbd87ebce86d62ec9.tar.gz
Add :detach command
Add a command for removing attachments from a composed message. Syntax
is :detach [path], with path being an optional argument specifying the
path of one existing attachment. If no path is specified, the first
attachment is removed.
Diffstat (limited to 'commands')
-rw-r--r--commands/compose/detach.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/commands/compose/detach.go b/commands/compose/detach.go
new file mode 100644
index 0000000..e700ab6
--- /dev/null
+++ b/commands/compose/detach.go
@@ -0,0 +1,55 @@
+package compose
+
+import (
+	"fmt"
+	"time"
+
+	"git.sr.ht/~sircmpwn/aerc/widgets"
+	"github.com/gdamore/tcell"
+)
+
+type Detach struct{}
+
+func init() {
+	register(Detach{})
+}
+
+func (_ Detach) Aliases() []string {
+	return []string{"detach"}
+}
+
+func (_ Detach) Complete(aerc *widgets.Aerc, args []string) []string {
+	composer, _ := aerc.SelectedTab().(*widgets.Composer)
+
+	return composer.GetAttachments()
+}
+
+func (_ Detach) Execute(aerc *widgets.Aerc, args []string) error {
+	var path string
+	composer, _ := aerc.SelectedTab().(*widgets.Composer)
+
+	if len(args) > 2 {
+		return fmt.Errorf("Usage: :detach [path]")
+	}
+
+	if len(args) == 2 {
+		path = args[1]
+	} else {
+		// if no attachment is specified, delete the first in the list
+		atts := composer.GetAttachments()
+		if len(atts) > 0 {
+			path = atts[0]
+		} else {
+			return fmt.Errorf("No attachments to delete")
+		}
+	}
+
+	if err := composer.DeleteAttachment(path); err != nil {
+		return err
+	}
+
+	aerc.PushStatus(fmt.Sprintf("Detached %s", path), 10*time.Second).
+		Color(tcell.ColorDefault, tcell.ColorGreen)
+
+	return nil
+}
9 +0200 One in five ranger users use it exclusively for browsing porn' href='/akspecs/ranger/commit/CHANGELOG?h=v1.6.0&id=5abcb148c09184d788f2f5352025f63bc23da2e1'>5abcb148 ^
fc0c76f9 ^


5abcb148 ^
fc0c76f9 ^

ef2b1e37 ^
2ed2d4f7 ^




b7b8f3a0 ^




c8f870cb ^



ef2b1e37 ^















81f5ac9e ^
efd7c0c1 ^






cbcd3325 ^






81f5ac9e ^
cbcd3325 ^
d3bcb234 ^

cbcd3325 ^
81f5ac9e ^











cbcd3325 ^
90018274 ^




cbcd3325 ^
95e021ae ^

c928a9eb ^
95e021ae ^
cbcd3325 ^
95e021ae ^















1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184