Nie możesz wybrać więcej, niż 25 tematów
Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
To repozytorium jest zarchiwizowane. Możesz wyświetlać pliki i je sklonować, ale nie możesz do niego przepychać zmian lub otwierać zgłoszeń/Pull Requestów.
|
- #!/usr/bin/fish
-
- set timer_folder ~/.timer
- set activity_lists_folder $timer_folder/activity.lists
- set activity_timeclock_file $timer_folder/activity.timeclock
- set activity_i3blocks_linefile $timer_folder/activity.i3blocks
- set activity_i3blocks_socket $timer_folder/activity.i3blocks.sock
- set activity_current_file $timer_folder/activity.current
- set activity_timeclock_append_log_folder $timer_folder/activity.timeclock.d
- set activity_timeclock_append_log_filename $activity_timeclock_append_log_folder/(date +%Y-%m-%d)-(hostname)
-
- function activity_i3blocks_show
- tee $activity_i3blocks_linefile | socat - UNIX-CONNECT:$activity_i3blocks_socket
- end
-
- function parse_activity_timeclock
- sort -k2 | uniq \
- |begin
- set state o
- while read -L line
- set type (string sub -l 1 "$line")
- set date (string sub -s 3 -l 10 "$line")
- set time (string sub -s 14 -l 8 "$line")
- if [ $state = 'i' ]
- echo "o $date $time"
- end
- if [ $type = 'i' ]
- set state i
- set rs (string sub -s 23 "$line")
- string match -r '^(.+?)(?: (.+?))? *(?:;.*)?$' "$rs" \
- |begin
- read -L null
- read -L activity
- read -L payee
- end
- echo "i $date $time $rs"
- else if [ $type = 'o' ]
- set state o
- end
- end
- end
- if [ $state = 'i' ]
- echo $activity > $activity_current_file
- set i3blocks_activity
- echo "<span foreground=\"#00FF00\">★ $activity</span>" | activity_i3blocks_show
- else
- rm $activity_current_file
- echo "<span foreground=\"#0000FF\">☆</span>" | activity_i3blocks_show
- end
- end
-
- function merge_timeclock_append_log
- cat $activity_timeclock_append_log_folder/* | parse_activity_timeclock > $activity_timeclock_file
- end
-
- function get_current_timeclock_state
- merge_timeclock_append_log
- end
-
- function select_activity
- set next (cat $activity_lists_folder/* | rofi -dmenu -p activity)
- if [ ! -n "$next" ]
- exit 1
- end
- begin_activity "$next"
- end
-
- function begin_activity
- echo i (date '+%Y-%m-%d %H:%M:%S') $argv >> $activity_timeclock_append_log_filename
- echo "<span foreground=\"#00FF00\">★ $argv</span>" | activity_i3blocks_show
- end
-
- function end_activity
- echo o (date '+%Y-%m-%d %H:%M:%S') >> $activity_timeclock_append_log_filename
- echo "<span foreground=\"#0000FF\">☆</span>" | activity_i3blocks_show
- end
-
-
-
- set command $argv[1]
- switch $command
-
- case "select_activity"
- select_activity
-
- case "begin_activity"
- begin_activity $argv[2..-1]
-
- case "end_activity"
- end_activity
-
- case "show_activity"
- get_current_timeclock_state
-
- end
|