From 5e59a460d01538d89fc1bdd11a4e30a2c1b669dd Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Mon, 2 May 2016 16:12:08 +0200 Subject: join all files into mark.fish --- functions/__mark_get.fish | 127 ---------------------------------------------- 1 file changed, 127 deletions(-) delete mode 100644 functions/__mark_get.fish (limited to 'functions/__mark_get.fish') diff --git a/functions/__mark_get.fish b/functions/__mark_get.fish deleted file mode 100644 index ecd3d91..0000000 --- a/functions/__mark_get.fish +++ /dev/null @@ -1,127 +0,0 @@ -function __mark_get --description 'extract information from a mark_store' - # defaults - set mark_store $__mark_store - set year (date "+%Y") - set month (math (date "+%m") "*1") - set day (math (date "+%d") "*1") - # range of marks retunrned around date - set range 0 - - # parse argv - for i in (seq 1 (count $argv)) - if string match -q -- "-y=*" "$argv[$i]" - set year (string replace -- "-y=" "" $argv[$i]) - else if string match -q -- "-m=*" "$argv[$i]" - set month (string replace -- "-m=" "" $argv[$i]) - else if string match -q -- "-d=*" "$argv[$i]" - set day (string replace -- "-d=" "" $argv[$i]) - else if string match -q -- "-s=*" "$argv[$i]" - set mark_store (string replace -- "-s=" "" "$argv[$i]") - else if string match -q -- "-r=*" "$argv[$i]" - set range (string replace -- "-r=" "" "$argv[$i]") - else - echo unrecognised option: $argv[$i] >&2 - return 1 - end - end - - if not test -f $mark_store - return 1 - end - - set marks (__mark_print_block store $mark_store) - set marks (string split " " $marks) - - # find year in marks - for i in (seq 1 (count $marks)) - if string match -q -r "^$year:\$" $marks[$i] - set year_offset $i - break - end - end - - # return if year not in the data - if not set -q year_offset - echo year $year not found in the store >&2 - return 1 - end - - if test $day -eq 0 - # collect all marks in month - set marks_list - for m in (string split "" (string split ':' $marks[(math $month+$year_offset)])[2]) - # check if $m is a mark - if test $m != '?' - set incremented false - # check if a count for $m is already stored in $marks_list - for e in $marks_list - if test $e = mark_$m - set incremented true - # build count variable name - set cur mark_$m - # increment mark count - set $cur (math $$cur + 1) - end - end - # add count for $m if it was not in $marks_list - if test $incremented = false - set mark_$m 1 - set marks_list $marks_list mark_$m - end - end - end - # print result - echo (count $marks_list) different marks found: - for e in $marks_list - echo (string split '_' $e)[2]:$$e - end - else - # get range - if test $range -ne 0 - set range (math $range - 1) - set start_s (date -d "$year-$month-$day - $range days" +%s) - set start_d (string split "-" (date -d @$start_s +%Y-%m-%d)) - - set year_diff (math $year - $start_d[1]) - set first_year_offset (math "$year_offset + 12*$year_diff") - - if test $first_year_offset -gt (count marks) - echo range is to big for available data! >&2 - return 1 - end - - # collect relevant marks - # $s = oldest month to add - set s $start_d[2] - set e 12 - for y in (seq $first_year_offset -12 $year_offset) - # set e if last year is reached - if test $y -eq $year_offset - set e $month - end - for i in (seq $s $e) - set range_marks $range_marks (string split ":" $marks[(math $y + $i)])[2] - end - # reset s -> start with january - set s 0 - end - - set marks (string split "" $range_marks[1]) - - if test (count $range_marks) -gt 1 - set marks $marks[$start_d[3]..-1] - for i in (seq 2 (math (count $range_marks) - 1)) - set marks $marks (string split "" $range_marks[$i]) - end - set tmp_marks (string split "" $range_marks[-1]) - set marks $marks $tmp_marks[1..$day] - else - set marks $marks[$start_d[3]..$day] - end - echo (string join "" $marks) - else - set marks (string split "" (string split ":" $marks[(math $month+$year_offset)])[2]) - echo $marks[$day] - end - end -end -- cgit v1.2.3