summaryrefslogtreecommitdiff
path: root/bin
AgeCommit message (Collapse)Author
2022-07-21bin: Add tissue web-build subcommand.Arun Isaac
* bin/tissue (tissue-web-build): New function. * bin/tissue (print-usage): List web-build subcommand. (main): Invoke tissue-web-build.
2022-07-21web: server: Be unaware of the state directory.Arun Isaac
The server should be unaware of the specifics of the state directory and its directory structure. It should be explicitly passed paths to all necessary directories. This way, the server can be repurposed for other applications such as the development web server---something that is coming soon in the subsequent commits. * tissue/web/server.scm (handler): Remove state-directory argument. Use directory paths in hosts argument. (start-web-server): Remove state-directory argument. Do not pass on state-directory to handler. * bin/tissue (tissue-web): Pass directory paths explicitly to start-web-server in hosts argument. Do not pass the removed state-directory argument.
2022-07-20bin: Do not print canonical paths when pulling.Arun Isaac
`tissue pull' may be run in CI with the logs getting published. It is better to not expose the canonical paths in such public logs. * bin/tissue (pull): Do not print canonical paths.
2022-07-13document: Move <file-document> code to a new (tissue file-document).Arun Isaac
* tissue/document.scm: Do not import (srfi srfi-171). (<file-document>, document-type, document-id-term, document-text, document-term-generator, print, document->sxml, read-gemtext-document): Move to (tissue file-document). (document-id-term, document-text, print, document->sxml): Declare as generic functions. * tissue/file-document.scm: New file. * tissue/issue.scm, bin/tissue: Import (tissue file-document).
2022-07-09commit: Index commit messages too.Arun Isaac
* tissue/commit.scm: New file. * tissue/web/server.scm (%css)[.search-result-commit]: Add COMMIT marker. * bin/tissue: Import (tissue commit). * tissue.scm (#:indexed-documents): Add commits. * issues/index-commit-messages.gmi: Close issue.
2022-07-09bin: Move indexing document type into document-term-generator.Arun Isaac
* bin/tissue (index): Move indexing document type into document-term-generator generic function. * tissue/document.scm (document-term-generator): Index document type.
2022-07-09issue: Move person related functions to (tissue person).Arun Isaac
* bin/tissue: Import (tissue person). * tissue/issue.scm: Import (tissue person). (%aliases, resolve-alias, index-person!): Move to (tissue person). * tissue/person.scm: New file.
2022-07-09bin: Rename run-web subcommand to web.Arun Isaac
* bin/tissue (tissue-run-web): Rename to tissue-web, and update synopsis in usage summary. (print-usage, main): Rename run-web to web.
2022-07-09bin: Deprecate tissue web subcommand.Arun Isaac
* bin/tissue (tissue-web): Delete function. (print-usage): Unlist web subcommand. (main): Do not call tissue-web.
2022-07-09bin: Make indexed documents a list of document objects.Arun Isaac
This simplifies the interface obviating the need for an <indexed-document> type. * bin/tissue: Do not import (srfi srfi-9). (<indexed-document>): Delete type. (index): Expect indexed documents to be a list of document objects. * tissue.scm (#:indexed-documents): Pass in a list of document objects, instead of a list of <indexed-document> objects.
2022-07-06bin: Print out filenames when building website.Arun Isaac
* bin/tissue (pull): Print out filenames when building website.
2022-07-06bin: Allow everyone to read built website.Arun Isaac
* bin/tissue (pull): Allow everyone to read built website.
2022-07-06bin: Look for a default config file.Arun Isaac
* bin/tissue (%default-config-file): New variable. (default-configuration): Read default config file if it exists.
2022-07-05bin: Refer to %xapian-index, not db-path, in main function.Arun Isaac
This bug was introduced in ec434ea0710e9ece9f5239c7fe2b1f965a53bea1 when copy-pasting code. * bin/tissue (main): Refer to %xapian-index, not db-path.
2022-07-05bin: Guard main function against all git errors.Arun Isaac
* bin/tissue (main): Guard against git errors printing the error message instead of a backtrace.
2022-07-05git: Add condition-git-error utility.Arun Isaac
* tissue/git.scm: Import (rnrs conditions) and (srfi srfi-1). (condition-git-error): New public function. * bin/tissue (default-configuration): Use condition-git-error.
2022-07-05bin: Do not error out when current repository is not found.Arun Isaac
* bin/tissue: Import (rnrs conditions). (default-configuration): Do not error out when current repository is not found.
2022-07-05bin: Centralize `tissue pull' and `tissue run-web' configuration.Arun Isaac
* bin/tissue (default-configuration): New function. (tissue-pull, tissue-run-web): Use default-configuration.
2022-07-05bin: Set css host parameter by parameterizing the current repo.Arun Isaac
* bin/tissue (tissue-run-web): Set css host parameter by parameterizing the current git repository.
2022-07-05bin: Pass configuration file to `tissue run-web' as an option.Arun Isaac
* bin/tissue (tissue-run-web): Accept configuration file as a command-line option. (unrecognized-argument): New function.
2022-07-05web: server: Pass state directory to web server.Arun Isaac
* tissue/web/server.scm: Import (git) and (tissue git). (handler, start-web-server): Accept path to state directory instead of to the xapian index. * bin/tissue (tissue-run-web): Pass state directory to start-web-server.
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.