Add multiple dec and inc support to karma. - annna - Annna the nice friendly bot.
(HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
---
(DIR) commit b0f43472e72697cedd16851cb5ca418f1af19b75
(DIR) parent 87623b17fd2492141331a0647ddca3ba830c65ec
(HTM) Author: Annna Robert-Houdin <annna@bitreich.org>
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(-)
---
(DIR) 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