#!/bin/sh
mkdir -p /tmp/hashmap_cache/

hinit() {
    rm -f /tmp/hashmap_cache/hashmap.$1
}

hput() {
    grep "^$2 " /tmp/hashmap_cache/hashmap.$1 >/dev/null 2>&1
    [ "$?" = "0" ] && hdelete "$1" "$2"    
    echo "$2" "$3" >> /tmp/hashmap_cache/hashmap.$1
}

hget() {
    grep "^$2 " /tmp/hashmap_cache/hashmap.$1 2>/dev/null| cut -d" "  -f2- 
}

hdelete()
{
    sed -i '/'$2'/d' /tmp/hashmap_cache/hashmap.$1
}


hhelp()
{
 echo -e "<key,value> data structure:\n-create value map:\n hashmap -p <cache file name> <key> <value>\n-get value:\n hashmap -g <cache file name> <key>\n-delete <key,value>:\n hashmap -d <cache file name> <key>\n-remove cache file:\n hashmap -i <cache filename>"

}


[ "-p" = "$1" ]&&{

hput "$2" "$3" "$4"

}

[ "-g" = "$1" ]&&{

hget "$2" "$3"

}

[ "-i" = "$1" ]&&{

hinit "$2"

}

[ "-d" = "$1" ]&&{

hdelete "$2" "$3"

}

[ "-h" = "$1" ]&&{

hhelp

}
