aboutsummaryrefslogtreecommitdiffstats
path: root/trash.go
diff options
context:
space:
mode:
Diffstat (limited to 'trash.go')
-rw-r--r--trash.go23
1 files changed, 18 insertions, 5 deletions
diff --git a/trash.go b/trash.go
index 6a3e024..889bc69 100644
--- a/trash.go
+++ b/trash.go
@@ -1,6 +1,7 @@
package main
import (
+ "flag"
"fmt"
"net/url"
"os"
@@ -39,30 +40,42 @@ DeletionDate=%s
}
if err := os.Rename(fileName, trash+"/files/"+strings.TrimSuffix(filepath.Base(info.Name()), ".trashinfo")); err != nil {
os.Remove(info.Name())
- return fmt.Errorf("%s: trash: %s", fileName, err)
+ return fmt.Errorf("%s: %s", fileName, err)
}
return nil
}
func main() {
+ flag.Usage = func() {
+ fmt.Fprintln(os.Stderr, "Usage: trash [FILE]...")
+ flag.PrintDefaults()
+ }
+ flag.Parse()
+
+ if len(flag.Args()) == 0 {
+ fmt.Fprintln(os.Stderr, "trash: missing operand")
+ flag.Usage()
+ os.Exit(1)
+ }
+
trash := os.Getenv("HOME") + "/.local/share/Trash"
if xdgDataHome := os.Getenv("XDG_DATA_HOME"); xdgDataHome != "" {
trash = xdgDataHome + "/Trash"
}
if err := os.MkdirAll(trash+"/files", 0755); err != nil {
- fmt.Fprintln(os.Stderr, err)
+ fmt.Fprintln(os.Stderr, "trash: ", err)
os.Exit(1)
}
if err := os.MkdirAll(trash+"/info", 0755); err != nil {
- fmt.Fprintln(os.Stderr, err)
+ fmt.Fprintln(os.Stderr, "trash: ", err)
os.Exit(1)
}
now := time.Now().Format("2006-01-02T15:04:05")
success := true
- for _, fileName := range os.Args[1:] {
+ for _, fileName := range flag.Args() {
if err := trashFile(fileName, trash, now); err != nil {
- fmt.Fprintln(os.Stderr, err)
+ fmt.Fprintln(os.Stderr, "trash: ", err)
success = false
}
}