Work on #16 This was a relatively large amount of work. It introduces assets which are stored in the assets sub directory and stored in the database with the asset type in the database.
45 lines
1.2 KiB
Bash
45 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
initKnowledgeBase(){
|
|
local output
|
|
necho -e "${YELLOW}Initialising Knowledge base${NC}"
|
|
vecho "Directory: $dataDir"
|
|
if [ "$verbose" -gt 0 ]; then
|
|
output="/dev/stdout"
|
|
else
|
|
output="/dev/null"
|
|
fi
|
|
[ -e "$dataDir" ] && die "$dataDir already exists"
|
|
mkdir -p "$dataDir"
|
|
if [ "$dogit" -gt 0 ]; then
|
|
git init "$dataDir" > "$output"
|
|
|
|
# TODO: make gitignore use new sqlite file
|
|
# Datadir always has a trailing slash
|
|
echo "/knowledgebase.sqlite3" >> "${dataDir}.gitignore"
|
|
|
|
git -C "$dataDir" add .gitignore > "$output"
|
|
git -C "$dataDir" commit -m "Knowledge base initialised" > "$output"
|
|
if type -p git-lfs; then
|
|
git -C "$dataDir" lfs install > "$output"
|
|
for i in "jpg" "jpeg" "gif" "png" "pdf"; do
|
|
git -C "$dataDir" lfs track "*.$i" > "$output"
|
|
done
|
|
git -C add .gitattributes
|
|
git commit -m "Initialises Git lfs"
|
|
fi
|
|
fi
|
|
initDB
|
|
}
|
|
|
|
initDB(){
|
|
vecho "Creating Database"
|
|
echo 'CREATE TABLE items
|
|
(id integer primary key, filename text, title text, type text);
|
|
CREATE TABLE tags
|
|
(id integer primary key, name text);
|
|
CREATE TABLE links
|
|
(id integer primary key, itemID integer, tagID integer); ' |
|
|
sqlite3 "${sqliteFile}"
|
|
necho -e "${GREEN}Initialised Knowledge base${NC}"
|
|
}
|