diff options
| -rw-r--r-- | src/markam.scm | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/markam.scm b/src/markam.scm index 0079f64..5d6581f 100644 --- a/src/markam.scm +++ b/src/markam.scm @@ -74,6 +74,18 @@ bookmark-id tag-id))) tags))) +(define (search-bookmarks db str) + (for-each-row print-row db #<<END + SELECT * + FROM bookmark + WHERE name LIKE ? + OR ? IN (SELECT name + FROM tag + JOIN bookmark_tag ON (tag_id = tag.rowid) + WHERE bookmark_id = bookmark.rowid) +END + (string-append "%" str "%") str)) + ;; Is STR a URL? Very naïve, assumes all URLs begin with either ;; `http://' or `https://', should be improved. (define (url-string? str) @@ -92,7 +104,7 @@ "--help, -h Display this help and exit~%" "--version, -v Output version information and exit~%"))) -;; Parse command-line arguments +;; Parse "other" command-line arguments (define (handle-regular-args args) (do ((arg (car args) (and (not (null? args)) (car args)))) @@ -120,6 +132,8 @@ db (lambda () (add-bookmark db (car args) (cadr args) (caddr args) (cdddr args)) #t))) + ((string= (car args) "search") + (search-bookmarks db (cadr args))) (else (handle-regular-args args))) (finalize! db #t))) |
