two_with_bash/lib/db.sh
2025-05-07 00:39:41 +02:00

62 lines
No EOL
1,009 B
Bash

#!/bin/bash
FILE_TRASH="/dev/null"
DB_PATH="./data/"
# 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 "$*" >> ${DB_PATH}${db_name}.db
return 0
}
function delete_in_db {
db_name="${1}"
id="${2}"
[ "$(uname)" == "Darwin" ] \
&& sed "/^${id}/d" "${DB_PATH}${db_name}.db" -i '' \
|| sed "/^${id}/d" "${DB_PATH}${db_name}.db" -i
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}"
}