From d70f5398a300ca698f0cdf232caf5a13cf5ab13f Mon Sep 17 00:00:00 2001 From: Jonathan Hodgson Date: Tue, 22 Dec 2020 09:34:29 +0000 Subject: [PATCH] Adds the ability to index folder and re-populate the db Misc: The arguments are now sorted alphabetically in the main funciton close #4 --- inc/file-management | 2 -- inc/init | 5 ++++- kb | 34 ++++++++++++++++++++++++++-------- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/inc/file-management b/inc/file-management index a8f968b..74c593d 100644 --- a/inc/file-management +++ b/inc/file-management @@ -44,8 +44,6 @@ updateFileChange(){ [ ! -e "$filename" ] && die "No such file $1" title="$(getYamlTitle "$filename")" newFilename="$(escapeFilename "$title.md")" - echo "Filename: '$filename' -new filename: '$newFilename'" if [ "$filename" = "$newFilename" ]; then # The title hasn't changed # check if the file is in the DB diff --git a/inc/init b/inc/init index a04089f..2223e0a 100644 --- a/inc/init +++ b/inc/init @@ -20,6 +20,10 @@ initKnowledgeBase(){ git -C "$dataDir" add .gitignore > "$output" git -C "$dataDir" commit -m "Knowledge base initialised" > output fi + initDB +} + +initDB(){ vecho "Creating Database" echo 'CREATE TABLE items (id integer primary key, filename text, title text, type text); @@ -30,4 +34,3 @@ initKnowledgeBase(){ sqlite3 "${sqliteFile}" necho -e "${GREEN}Initialised Knowledge base${NC}" } - diff --git a/kb b/kb index 6d1e5ee..fa7c352 100755 --- a/kb +++ b/kb @@ -243,6 +243,21 @@ listEntries(){ sqlite3 --column $header "${sqliteFile}" } + +indexFolder(){ + vecho "indexFolder $*" + local olddogit="$dogit" + dogit=0 + initDB + find "$dataDir" -name "*.md" | while read file; do + file="${file##*/}" + updateFileChange "$file" + done + dogit="$olddogit" + +} + + mainScript() { ############## Begin Script Here ################### #################################################### @@ -255,18 +270,20 @@ mainScript() { fi fi case "${args[0]}" in - init) initKnowledgeBase; safeExit ;; - makedb) makedb; safeExit ;; - new) newFile "${args[@]:1}"; safeExit ;; + deepsearch) deepSearch "${args[@]:1}"; safeExit ;; + del|delete) deleteFile "${args[@]:1}"; safeExit ;; edit) editFile "${args[@]:1}"; safeExit ;; + fuzzy) fuzzySelect "${args[@]:1}"; safeExit ;; + git) externalgit "${args[@]:1}"; safeExit ;; + index) indexFolder "${args[@]:1}"; safeExit ;; + init) initKnowledgeBase; safeExit ;; list) listEntries "${args[@]:1}"; safeExit ;; list-tags) listTags "${args[@]:1}"; safeExit ;; - view) viewFile "${args[@]:1}"; safeExit ;; - fuzzy) fuzzySelect "${args[@]:1}"; safeExit ;; + makedb) makedb; safeExit ;; + new) newFile "${args[@]:1}"; safeExit ;; update) updateFileChange "${args[@]:1}"; safeExit ;; - deepsearch) deepSearch "${args[@]:1}"; safeExit ;; - del|delete) deleteFile "${args[@]:1}"; safeExit ;; - git) externalgit "${args[@]:1}"; safeExit ;; + view) viewFile "${args[@]:1}"; safeExit ;; + *) usage >&2; safeExit ;; esac @@ -315,6 +332,7 @@ usage() { edit or view git [options] Run arbitary git commands on the kb repository del [title] Delete a file + index Indexes the folder (usful after a clone etc) " }