log.Println("OpenFile:", *userStatusFifo, err)
continue
}
- var onlines []string
- var aways []string
+ statuses := make(map[string][]string)
for name, status := range UserStatus {
- switch status {
- case "online":
- onlines = append(onlines, name)
- case "away":
- aways = append(aways, name)
+ statuses[status] = append(statuses[status], name)
+ }
+ for status := range statuses {
+ if status == "offline" {
+ continue
}
+ sort.Strings(statuses[status])
+ fmt.Fprintln(fd, status+":", strings.Join(statuses[status], " "))
}
- sort.Strings(onlines)
- sort.Strings(aways)
- fmt.Fprintln(fd, "O:", strings.Join(onlines, " "))
- fmt.Fprintln(fd, "A:", strings.Join(aways, " "))
fd.Close()
}
}()
}
case model.WebsocketEventStatusChange:
status := data["status"].(string)
- switch status {
- case "online":
- case "offline":
- case "away":
- default:
- log.Println(user.Username, "unknown status:", status)
- }
UserStatus[user.Username] = status
if *notifyCmd != "" {
exec.Command(*notifyCmd, fmt.Sprintf(
-e "s#CATFILE#$cmd/catfile#" \
-e "s#DLPANE#$cmd/dlpane#" < "$cmd"/tmux.conf > tmux.conf
$TMUX -f tmux.conf new-session -d -n ROOT -s mmc "cat debug | tai64n | tai64nlocal"
-$TMUX split-window -h 'while : ; do cat users/status | spc -e grn,"^O:.*" -e cya,"^A:.*" ; sleep 30 ; clear ; done'
+$TMUX split-window -h 'while : ; do cat users/status | spc -e grn,"^online:.*" -e cya,"^away:.*" ; sleep 30 ; clear ; done'
$TMUX split-window -v "$cmd/mmc/mmc -debug debug -user-status users/status -newwin $cmd/newwin -notify $cmd/notify | tai64n | tai64nlocal"
$TMUX attach-session