diff --git a/lib/db.sh b/lib/db.sh new file mode 100644 index 0000000..3d90a80 --- /dev/null +++ b/lib/db.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +FILE_TRASH="/dev/null" +DB_PATH="./data/" +SED_DARWIN="''" + + +# errors : +# 1 file do not exist +# 2 entry do not exist +# +# ok : +# 0 entry exist +function check_in_db { + + db_name="${1}" + search_id="${2}" + + [ -f "${DB_PATH}${db_name}.db" ] || return 1 + cat "${DB_PATH}${db_name}.db" | \ + grep -E "^${search_id}" > "${FILE_TRASH}" || return 2 + return 0 +} + +function add_in_db { + + db_name="${1}" + shift 1 + + local IFS=";" + echo add + echo "$*" >> ${DB_PATH}${db_name}.db + return 0 + +} + +function delete_in_db { + + db_name="${1}" + id="${2}" + + sed -i ${SED_DARWIN} "/^${id}/d" "${DB_PATH}${db_name}.db" + return 0 + +} + +# errors : +# 0 file do not exist +# +# ok : +# [1-500] entry count +function count_in_db { + + db_name="${1}" + id="${2}" + + [ -f "${DB_PATH}${db_name}.db" ] || return 0 + count=$(cat "${DB_PATH}${db_name}.db" | grep "${id}" | wc -l | sed -e 's/ //g') + + return "${count}" + +} \ No newline at end of file