diff --git a/inc/tag-management b/inc/tag-management index 3b1884e..0e2c006 100644 --- a/inc/tag-management +++ b/inc/tag-management @@ -74,10 +74,4 @@ listTags(){ FROM tags LEFT JOIN links ON tags.id = links.tagID GROUP BY tags.id" | sqlite3 --column $header "${sqliteFile}" - #echo "SELECT items.id,items.filename,items.title,items.type, - #GROUP_CONCAT(tags.name,',') tags - #FROM items LEFT JOIN links ON items.id = links.itemID - #LEFT JOIN tags ON links.tagID = tags.id - #GROUP BY items.id;" | - # sqlite3 --column --header "${sqliteFile}" } diff --git a/kb b/kb index 108e0ca..6763555 100755 --- a/kb +++ b/kb @@ -235,11 +235,25 @@ listEntries(){ vecho "listEntries $*" cd "$dataDir" || return local header="--header" - [ "$1" = "--noheader" ] && header="" + local typeorlist="" + while [ "$#" -gt 0 ]; do + case "$1" in + --noheader) header="" ;; + --normal) typeorlist+=" OR items.type = 'normal'" ;; + --assets) typeorlist+=" OR items.type = 'assets'" ;; + --links) typeorlist+=" OR items.type = 'links'" ;; + *) die "invalid list option: '$1'." ;; + esac + shift + done + typeorlist="$(echo "$typeorlist" | sed 's/^ OR //')" + [ -z "$typeorlist" ] && typeorlist="items.type = 'normal'" + echo "SELECT items.id,items.filename,items.title,items.type, GROUP_CONCAT(tags.name,',') tags FROM items LEFT JOIN links ON items.id = links.itemID LEFT JOIN tags ON links.tagID = tags.id + WHERE $typeorlist GROUP BY items.id;" | sqlite3 --column $header "${sqliteFile}" } @@ -324,6 +338,7 @@ usage() { edit [title] Edit a file list List all files --noheader Don't include the header + --normal List items of type \"normal\" list-tags Lists tags with the number of times its used --noheader Don't include the header update [] Updates the database and git repo of a changed file