package rbar_util import ( "os" "io" "path/filepath" "strings" "errors" "fmt" ) func GlobEscape(lit string) string { glob := lit glob = strings.Replace(glob, "\\", "\\\\", -1) glob = strings.Replace(glob, "*", "\\*", -1) glob = strings.Replace(glob, "?", "\\?", -1) glob = strings.Replace(glob, "[", "\\[", -1) return glob } var NoRbar = errors.New("no WMII rbars found") func Write(filename string, msg string) error { dirnames, _ := filepath.Glob(GlobEscape(os.Getenv("XDG_RUNTIME_DIR"))+"/wmii*/rbar") if len(dirnames) == 0 { return NoRbar } for _, dirname := range dirnames { file, err := os.OpenFile(filepath.Join(dirname, filename), os.O_WRONLY| os.O_APPEND|os.O_CREATE, 0666) if err != nil { continue } io.WriteString(file, msg) file.Close() } return nil } func Remove(glob string) { fmt.Println("remove", glob); fullglob := GlobEscape(os.Getenv("XDG_RUNTIME_DIR"))+"/wmii*/rbar/"+glob fmt.Println("glob", fullglob) filenames, err := filepath.Glob(fullglob) fmt.Println("globerr", err) for _, filename := range filenames { os.Remove(filename) } }