#!/bin/bash . $(ffoom path) ffoo import inigrep ffoo import pretty ffoo import sync ffoo import saturnin_common ffoo import saturnin_zleep # # self help # available_commands="afk at back gone ooo wfh undocking zleeping" usage() { mkusage $available_commands } # # querying # where_i_am() { # # what is my physical location? # if=$(inigrep -p iam.using.if) gwmac=$(arp | grep "^gateway\\>.*\\<$if\$" | tr ' ' '\n' | grep :) inigrep -p iam.seeing.gw.$gwmac || echo OUT } set_status() { # # set public status $1 by command in conf file # local what=$1 saturnin_runhook say_$what saturnin_runhook log_$what } # # subcommand handlers # i_am_afk() { # # away from keyboard; blocks until i'm back again # mocp --pause set_status "afk" saturnin kb home # make sure to set lang to default before locking slock set_status "atk" } i_am_at() { # # Just say where I am # where_i_am } i_am_back() { # # returning to work (should be called by other subcommands) # set_status "back" klist -s || urxvt -e kinit } i_am_gone() { # # gone fishin' # kdestroy ssh-add -D set_status "gone" i_am_afk i_am_back } i_am_ooo() { # # too dangerous to implement # die "not implemented" } i_am_wfh() { # # too dangerous to implement # die "not implemented" } i_am_undocking() { # # i.e. hibernated # inigrep -p iam.undocking.like | bash - } i_am_zleeping() { # # i.e. hibernated # set_status "zleeping" zleep i_am_back } cmd=$1 test -n "$cmd" || usage echo $available_commands | grep -qw "$cmd" || usage shift i_am_$cmd $1