shithub: hell

Download patch

ref: 0a2550e6d1e9b8a4f49e5a12d9757e3d17339024
parent: 188111a12863f097b3f5ffeefbac3beec1efc286
author: penny <penny@limitedideas.org>
date: Sat Nov 1 14:22:15 EDT 2025

port /detach

--- a/commands.go
+++ b/commands.go
@@ -352,6 +352,54 @@
 
 }
 
+type detachcmd struct {
+	*Hellclient
+}
+
+func (cmd *detachcmd) flags() cmdflag {
+	return free
+}
+
+func (cmd *detachcmd) name() string {
+	return "detach"
+}
+
+func (cmd *detachcmd) result(data *cmddata) string {
+	cmd.attacher.clearAttachments()
+	cmd.prompt.UpdatePrompt()
+	return ""
+}
+
+type attachcmd struct {
+	*Hellclient
+}
+
+func (cmd *attachcmd) flags() cmdflag {
+	return free
+}
+
+func (cmd *attachcmd) name() string {
+	return "attach"
+}
+
+func (cmd *attachcmd) result(data *cmddata) string {
+	hc := cmd.Hellclient
+	var err error
+	filename := data.content
+	if filename == "" {
+		filename, err = pickFilename(hc.preferences.FilePicker)
+	}
+	if err != nil {
+		return fmt.Sprintf("File picking error: %s\n", err)
+	}
+	err = hc.attacher.uploadAttachment(filename)
+	if err != nil {
+		return fmt.Sprintf("Upload error: %s\n", err)
+	}
+	hc.prompt.UpdatePrompt()
+	return ""
+}
+
 func (hc *Hellclient) newCmdArray() ([]cmder) {
 	cmdarray := []cmder{
 		&profilecmd{hc, hc.cmdload},
@@ -358,6 +406,8 @@
 		&dmcmd{hc},
 		&helpcmd{hc},
 		&reloadcmd{hc},
+		&detachcmd{hc},
+		&attachcmd{hc},
 	}
 	return cmdarray
-}
\ No newline at end of file
+}
--- a/main.go
+++ b/main.go
@@ -125,10 +125,6 @@
 
 			//Contextual commands that need to handle their own requirements
 			switch command {
-			case "detach":
-				hc.attacher.clearAttachments()
-				hc.prompt.UpdatePrompt()
-				return
 			case "attach":
 				if arguments == "" {
 					arguments, err = pickFilename(hc.preferences.FilePicker)
--