Add multiple dec and inc support to karma. - annna - Annna the nice friendly bo… | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit b0f43472e72697cedd16851cb5ca418f1af19b75 | |
parent 87623b17fd2492141331a0647ddca3ba830c65ec | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Sun, 18 Sep 2022 11:02:14 +0200 | |
Add multiple dec and inc support to karma. | |
Diffstat: | |
M karma | 31 +++++++++++++++++++++++------… | |
1 file changed, 23 insertions(+), 8 deletions(-) | |
--- | |
diff --git a/karma b/karma | |
@@ -13,20 +13,20 @@ function setkarmaval { | |
} | |
function parsekarma { | |
- karmatag="$(printf "%s\n" "${1}" | sed -e 's,\(.*\)[+|-]\{2\}$,\1,')" | |
+ karmatag="$(printf "%s\n" "${1}" | sed -e 's,^\([a-zA-Z_0-9]*\).*$,\1,… | |
[ -z "${karmatag}" ] && karmatag="karma" | |
printf "%s\n" "${karmatag}" | |
} | |
function getkarmaval { | |
- karmatag="$(parsekarma "${1}")" | |
- karmaval="$(grep "^${karmatag}" "${karmadb}" | cut -f 2)" | |
+ karmatag="${1}" | |
+ karmaval="$(grep -P "^${karmatag}\t" "${karmadb}" | cut -f 2)" | |
[ -z "${karmaval}" ] && printf "0\n" | |
printf "%s\n" "${karmaval}" | |
} | |
function modifykarma { | |
- karmatag="$(parsekarma "$1")" | |
+ karmatag="$1" | |
karmaval=$(getkarmaval "${karmatag}") | |
newkarmaval="$(printf "%d%s\n" "${karmaval}" "$2" | bc)" | |
setkarmaval "${karmatag}" $newkarmaval | |
@@ -34,24 +34,39 @@ function modifykarma { | |
} | |
function inckarma { | |
- modifykarma "$1" " + 1" | |
+ modifykarma "$1" " + $2" | |
} | |
function deckarma { | |
- modifykarma "$1" " - 1" | |
+ modifykarma "$1" " - $2" | |
+} | |
+ | |
+function parsechangevalue { | |
+ printf "%s\n" "${1}" | sed -e 's,.*[+|-]=\([0-9\-]*\),\1,' | |
} | |
karmastr="$1" | |
+karmatag="$(parsekarma "${karmastr}")" | |
case "${karmastr}" in | |
*" "*) | |
;; | |
*","*) | |
;; | |
+*+=*) | |
+ inckarma "${karmatag}" "$(parsechangevalue "${karmastr}")" | |
+ ;; | |
*++) | |
- inckarma "${karmastr}" | |
+ inckarma "${karmatag}" "1" | |
+ ;; | |
+*-=*) | |
+ deckarma "${karmatag}" "$(parsechangevalue "${karmastr}")" | |
;; | |
*--) | |
- deckarma "${karmastr}" | |
+ deckarma "${karmatag}" "1" | |
+ ;; | |
+"${karmatag}") | |
+ karmaval="$(getkarmaval "${karmatag}")" | |
+ printf "%s = %d\n" "$karmatag" "$karmaval" | |
;; | |
*) | |
sort -r -k 2 "${karmadb}" | column -t |