based.fish/functions/__based_init_db.fish

26 lines
992 B
Fish

function __based_init_db
set -l db_path ~/.local/share/fish/based/based.db
if test -f $db_path
echo "Database already exists at $db_path. If you want to reinitialize, please delete it first."
return
end
mkdir -p (dirname $db_path)
sqlite3 -batch $db_path "
CREATE TABLE IF NOT EXISTS log (
path TEXT NOT NULL,
cmd TEXT NOT NULL,
counter INTEGER NOT NULL DEFAULT 1,
ts INTEGER NOT NULL,
PRIMARY KEY (path, cmd)
);
CREATE INDEX IF NOT EXISTS idx_log_cmd ON log(cmd);
CREATE INDEX IF NOT EXISTS idx_log_path_ts ON log(path, ts);
CREATE INDEX IF NOT EXISTS idx_log_path_cmd ON log(path, cmd);
CREATE INDEX IF NOT EXISTS idx_log_counter_ts ON log(counter DESC, ts DESC);
CREATE INDEX IF NOT EXISTS idx_log_cmd_like ON log(cmd COLLATE NOCASE);
"
echo "Based initialized. You can also import your fish history with 'based import'."
end