summaryrefslogtreecommitdiff
path: root/bin
AgeCommit message (Collapse)Author
2022-07-05bin: Move stale index checks to main function.Arun Isaac
We want `tissue pull' to unconditionally rebuild the index. Hence, we move stale index checks out of the index function. * bin/tissue (index): Do not check if index is stale. Always rebuild index. (main): Call the index function only when index is stale.
2022-07-04bin: Add `tissue pull' subcommand.Arun Isaac
* bin/tissue (print-usage): List pull subcommand. (pull, tissue-pull): New functions. (main): Call tissue-pull.
2022-07-04bin: Deprecate delete-directory in favor of guile-filesystem.Arun Isaac
* bin/tissue: Import (ice-9 filesystem). (delete-directory): Delete function. (index): Use delete-file-recursively instead of delete-directory.
2022-07-04bin: Separate out indexing into new function.Arun Isaac
* bin/tissue (index): New function. (main): Use index.
2022-07-04bin: Generalize delete-xapian-index to delete-directory.Arun Isaac
* bin/tissue (delete-xapian-index): Generalize to delete-directory. (main): Use delete-directory instead of delete-xapian-index.
2022-07-04bin: Unmemoize load-config.Arun Isaac
Memoizing load-config is untenable when dealing with multiple repositories in a single command invocation. * bin/tissue (load-config): Unmemoize. (tissue-web, main): Call load-config only once.
2022-07-03bin: Correctly support REPL listening on TCP socket.Arun Isaac
Prior to this, the REPL would listen on a Unix socket even if a TCP socket was requested. * bin/tissue (tissue-run-web): Correctly support REPL listening on TCP socket.
2022-07-03bin: Print Unix socket path, not port, for REPL listening on it.Arun Isaac
* bin/tissue (tissue-run-web): Print Unix socket path, not port, for REPL listening on it.
2022-07-03conditions: Deprecate &issue-file-not-found-error.Arun Isaac
The &issue-file-not-found-error cannot occur anymore now that we are reading files directly from the git repository and not from the working tree. * tissue/conditions.scm: Delete file. * bin/tissue, tissue/web/server.scm, tissue/web/static.scm: Do not import (tissue conditions). * bin/tissue (main): Do not guard against &issue-file-not-found-error conditions.
2022-07-03tissue: Read files from git repository, not from the working tree.Arun Isaac
This also frees us from checking if the file actually exists in the working tree. * bin/tissue (tissue-show): Use call-with-file-in-git instead of call-with-input-file. (load-config): Use call-with-file-in-git and eval-string instead of load. * tissue/document.scm: Import (tissue git). (document-text, read-gemtext-document): Use call-with-file-in-git instead of call-with-input-file. * tissue/issue.scm (file-details): Read from a port instead of from a file. (read-gemtext-issue): Call file-details with a port reading the file committed into the git repository. * tissue/web/server.scm: Import (tissue git). * tissue/web/static.scm (exporter): Use call-with-file-in-git instead of call-with-input-file.
2022-07-01web: server: Make CSS a host-specific parameter.Arun Isaac
* bin/tissue (tissue-run-web): Pass CSS as a host-specific parameter. * tissue/web/server.scm (handler): Remove css argument. Accept CSS as a host-specific parameter. (start-web-server): Remove css argument.
2022-07-01bin: Do not build index or parameterize for `tissue run-web'.Arun Isaac
* bin/tissue (main): Do not build index or parameterize for `tissue run-web'.
2022-06-30web: server: Support virtual hosts.Arun Isaac
* bin/tissue (tissue-run-web): Add hosts configuration option. * tissue/web/server.scm: Import (tissue utils). (start-web-server): Add host parameters argument. (handler): Read database based on Host header.
2022-06-30bin: Introduce listen specification for web service.Arun Isaac
The new listen specification unifies unix sockets, IP addresses and ports, all into one string. * bin/tissue (address->socket-address): Delete function. (listen->socket-address): New function. (tissue-run-web): Use listen->socket-address instead of address->socket-address. Specify default listen instead of default address and port.
2022-06-30bin: Read web service parameters from configuration file.Arun Isaac
* bin/tissue (invalid-operand): Delete function. (tissue-run-web): Read address and port from configuration file.
2022-06-29search: Return all results by default.Arun Isaac
* tissue/search.scm (search-fold, search-map): Set default value of #:maximum-items argument to all documents. * bin/tissue (tissue-search): Do not pass #:maximum-items to search-map.
2022-06-29bin: Page search results, and do not limit number of results.Arun Isaac
* bin/tissue (tissue-search): Page results, and do not limit number of results.
2022-06-29tissue: Add `tissue index' subcommand.Arun Isaac
* bin/tissue (tissue-index): New function. (print-usage): List `tissue index' subcommand. (main): Call tissue-index.
2022-06-29search: Limit number of search results.Arun Isaac
* tissue/search.scm (search-fold, search-map): Accept maximum number of search results and offset as arguments. * bin/tissue (tissue-search): Do not print number of search results. Use search-map instead of search-fold.
2022-06-29search: Accept search query as a single string.Arun Isaac
* tissue/search.scm (search-fold, search-map): Accept search query as a single string instead of a list of strings. * bin/tissue (tissue-search): Pass a single search string to search-fold. * tissue/web/server.scm (handler): Pass a single search string to search-map.
2022-06-29web: server: Add web server for search.Arun Isaac
* tissue/web/server.scm: New file. * tissue/document.scm (document-sxml-snippet): New public function. (document->sxml): New generic method. * tissue/issue.scm: Import (web uri). (document->sxml): New generic method. * bin/tissue: Import (system repl server) and (tissue web server). (address->socket-address, tissue-run-web): New function. (print-usage): List `tissue run-web' subcommand. (main): Call tissue-run-web.
2022-06-29document: Add web-uri slot to <document> class.Arun Isaac
* tissue/document.scm (<document>)[web-uri]: New slot. * bin/tissue (main): Set web-uri slot before indexing document.
2022-06-28tissue: Add missing argument to format in tissue-search.Arun Isaac
* bin/tissue (tissue-search): Add missing argument to format.
2022-06-28bin: Separate out search into (tissue search).Arun Isaac
* bin/tissue (tissue-search): Separate out search functionality into search-fold in (tissue search). * tissue/search.scm: New file.
2022-06-28Migrate to GOOPS.Arun Isaac
* tissue/document.scm: Do not import (srfi srfi-9). Import (srfi srfi-19), (ice-9 match) and (oop goops). (<document>): Delete type. (<document>, <file-document>): New classes. (date->alist, alist->date, object->scm, scm->object): New functions. (document->alist, alist->document, print-document): Delete functions. (document-term-generator, document-type, document-id-term, document-text, print): New generic methods. (read-gemtext-document): Return <file-document> object. (index-document): Delete function. * tissue/issue.scm: Do not import (srfi srfi-9) and (srfi srfi-19). Import (oop goops) and (tissue document). (date->iso-8601, iso-8601->date): Move to tissue/document.scm. (<issue>, <post>): Re-implement as class. (issue->alist, post->alist, alist->issue, alist->post, index-issue): Delete functions. (print-issue): Rename to print, a generic method. (print): Use document-title and file-document-path instead of issue-title and issue-file respectively. Accept mset argument. (print-issue-to-gemtext): Use document-title instead of issue-title. (read-gemtext-issue): Return a <issue> object. (document-term-generator): New generic methods. * bin/tissue: Import (tissue document) without a prefix. (print-document, alist->document, document->text, index-document): Delete functions. (tissue-search): Use the print generic function. (main): Use the document-type, document-id-term, document-term-generator generic functions and replace-document! instead of index-document. * tissue/conditions.scm (&unknown-document-type-violation): Delete condition.
2022-06-27web: Move (tissue web) to (tissue web static).Arun Isaac
* tissue/web.scm: Rename to tissue/web/static.scm. * bin/tissue: Import (tissue web static) instead of (tissue web). * Makefile (sources): Add sources in tissue/web/.
2022-06-27issue: Move issue printing functions to (tissue issue).Arun Isaac
* bin/tissue: Do not import (srfi srfi-19). (print-issue, print-issue-to-gemtext): Move to tissue/issue.scm. (human-date-string): Move to tissue/utils.scm. * tissue/issue.scm: Import (term ansi-color). * tissue/utils.scm: Import (srfi srfi-19).
2022-06-27issue: Replace issues thunk with read-gemtext-issue reader.Arun Isaac
* tissue/issue.scm (%issue-files): Delete parameter. (issues): Delete function. (read-gemtext-issue): New public function. (file-modification-table-for-current-repository): New function. * bin/tissue (main): Do not parameterize %issue-files.
2022-06-27tissue: Generalize issue-files to indexed-documents.Arun Isaac
* tissue/tissue.scm (<tissue-configuration>)[issue-files]: Delete field. [indexed-documents]: New field. * tissue/tissue.scm (tissue-configuration): Remove issue-files argument. Add indexed-documents argument. * bin/tissue: Import (tissue document) with doc: prefix. (print-document, alist->document, document->text, index-document): New functions. (tissue-search): Display search results for generalized documents using print-document, alist->document and document->text. (main): Index generalized documents using index-document.
2022-06-27bin: Deprecate rlast utility.Arun Isaac
* bin/tissue (rlast): Delete function.
2022-06-27bin: Deprecate invoke utility.Arun Isaac
* bin/tissue (invoke): Delete function.
2022-06-27bin: Add <indexed-document> type.Arun Isaac
* bin/tissue: Import (srfi srfi-9). (<indexed-document>): New type.
2022-06-27web: Deprecate all static issue listings.Arun Isaac
We are moving to a dynamic web interface with issue searches. Static issue listings are therefore obsolete. * tissue/web.scm: Do not import (skribilo ast), (skribilo lib), (skribilo package base), (skribilo utils keywords), (skribilo writer) and (sxml simple). (%tags-path): Delete parameter. (issue-list-item): Delete markup. (issue-listing, issue-list-item-markup-writer-action, tag-issue-lister, tag-pages): Delete functions. * bin/tissue (tissue-web): Do not parameterize %tags-path.
2022-06-27bin: Assume is:open in queries.Arun Isaac
* bin/tissue (tissue-search): Assume is:open in queries.
2022-06-26bin: Parse type field searches in queries.Arun Isaac
* bin/tissue (tissue-search): Parse type field searches in queries.
2022-06-26bin: Deprecate `tissue list' subcommand.Arun Isaac
* bin/tissue (tissue-list): Delete function. (print-usage): Unlist list subcommand. (main): Do not call tissue-list. Alias `tissue' to `tissue search'.
2022-06-26bin: Remove obsolete comment about highlighting keywords.Arun Isaac
* bin/tissue (print-issue): Remove obsolete comment about highlighting keywords.
2022-06-25bin: Handle blank search queries as a special case.Arun Isaac
* bin/tissue (tissue-search): Handle blank search queries as a special case.
2022-06-25bin: Unbolden issue keywords and show them all on blue.Arun Isaac
Bold issue keywords are too visually distracting. They compete with highlit text in snippets. * bin/tissue (print-issue): Unbolden issue keywords and show them all on blue, instead of some on red and some on blue.
2022-06-25bin: Add search subcommand.Arun Isaac
* bin/tissue (tissue-show): New function. (print-usage): List search subcommand. (main): Call tissue-search.
2022-06-25bin: Index issues using xapian.Arun Isaac
* bin/tissue: Import (ice-9 ftw), (git), (xapian wrap) and (xapian xapian). (delete-xapian-index): New function. (%state-directory, %xapian-index): New variables. (main): Build index if it does not exist. * tissue/issue.scm: Import (xapian xapian). (index-person): New function. (index-issue): New public function.
2022-06-25bin: Print issue filename.Arun Isaac
* bin/tissue (print-issue): Print issue filename. (tissue-list): Remove newline before printing total count.
2022-06-25bin: Do not print issue number.Arun Isaac
* bin/tissue (print-issue, print-issue-to-gemtext): Do not accept issue number argument. (tissue-list): Do not pass issue number argument to print-issue and print-issue-to-gemtext.
2022-06-25bin: Underline issue title when printing.Arun Isaac
* bin/tissue (print-issue): Underline issue title.
2022-06-25bin: Deprecate `tissue edit' subcommand.Arun Isaac
* bin/tissue (tissue-edit): Delete function. (print-usage): Unlist edit subcommand. (main): Do not call tissue-edit.
2022-06-25bin: Expect filename arguments to `tissue show'.Arun Isaac
* bin/tissue (tissue-show): Expect filename arguments instead of issue numbers.
2022-06-25bin: Use (term ansi-color) instead of rolling our own.Arun Isaac
* bin/tissue: Import (term ansi-color). (color, bold, red, green, yellow, blue, magenta, cyan, red-background, green-background, yellow-background, blue-background, magenta-background, cyan-background): Delete functions. (print-issue, tissue-show): Use colorize-string from (term ansi-color) instead of our own functions.
2022-06-23bin: Wean off git's relative dates.Arun Isaac
* bin/tissue: Import (srfi srfi-19). (human-date-string): New function. (print-issue, print-issue-to-gemtext): Use human-date-string instead of relative dates captured from git.
2022-06-22bin: Deprecate tissue news subcommand.Arun Isaac
* bin/tissue (git-updated-files, git-first-commit-since, tissue-news): Delete functions. * bin/tissue (main): Remove delegation to news subcommand. * bin/tissue (print-usage): Unlist tissue-news.
2022-06-22bin: Run with the top-level directory as the current directory.Arun Isaac
If we always run with the top-level directory as the current directory, we don't need to frequently discover the top-level directory by walking the filesystem. Also, this sits nicer with a migration from git to libgit2. * bin/tissue (main): Run all subcommands with the top-level directory as the current directory. (load-config): Load tissue.scm without appending the top-level directory to it. (tissue-web): Find the top-level directory using getcwd instead of git-top-level.