summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-05web: server: Serve static files too.Arun Isaac
* tissue/web/server.scm: Import (srfi srfi-171) and (ice-9 filesystem). (%mime-types): New variable. (handler): Serve static files too.
2022-07-05web: server: Error out on unknown host.Arun Isaac
* tissue/web/server.scm: Import (rnrs conditions) and (rnrs exceptions). (handler): Error out on unknown host.
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-04git: Bind git_reference_set_target from libgit2.Arun Isaac
* tissue/git.scm: Import dereference-pointer and string->pointer from (system foreign). (reference-set-target!): New public function.
2022-07-04git: Bind git_reference_symbolic_target from libgit2.Arun Isaac
* tissue/git.scm: Import pointer->string from (system foreign). (reference-symbolic-target): New public function.
2022-07-04utils: Add call-with-temporary-directory utility.Arun Isaac
* tissue/utils.scm: Import (ice-9 filesystem). (call-with-temporary-directory): New function.
2022-07-04web: static: When building website, accept port to log to.Arun Isaac
* tissue/web/static.scm (build-website): Accept log-port argument specifying port to log to.
2022-07-04web: static: Deprecate mkdir-p in favor of guile-filesystem.Arun Isaac
* tissue/web/static.scm: Import (ice-9 filesystem). (mkdir-p): Delete function. (build-website): Use make-directories instead of mkdir-p. Remove TODO note about using guile-filesystem.
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-04git: Add %current-git-repository parameter.Arun Isaac
* tissue/git.scm (%current-git-repository): New public parameter. (current-git-repository): Use %current-git-repository.
2022-07-04git: Implement git-top-level in terms of current-git-repository.Arun Isaac
* tissue/git.scm (git-top-level): Implement git-top-level in terms of current-git-repository.
2022-07-04git: Implement current-git-repository using repository-open-ext.Arun Isaac
repository-open-ext obsoletes git-top-level. * tissue/git.scm (current-git-repository): Implement using repository-open-ext instead of git-top-level.
2022-07-04git: Add clone-options utility.Arun Isaac
* tissue/git.scm: Import (bytestructures guile). (clone-options): New function.
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-03git: Fill git-top-level docstring.Arun Isaac
* tissue/git.scm (git-top-level): Fill docstring.
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-03issue: Use string-remove-prefix from (tissue utils).Arun Isaac
* tissue/issue.scm (list-line->alist, file-details): Use string-remove-prefix from (tissue utils). (file-details): Delete function.
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-03git: Add call-with-file-in-git utility.Arun Isaac
* tissue/git.scm (call-with-file-in-git): New public function.
2022-07-03git: Find git tracked files from HEAD, not from index.Arun Isaac
The index is the staging area. We really only want to look at files already committed into the git repository. In addition, a pleasant side-effect is that this gets rid of many of the additional bindings from libgit2. * tissue/git.scm: Import only %null-pointer from (system foreign). Do not import (bytestructures guile). (pointer->bytestructure, bytestructure->pointer, pointer->index-time, pointer->index-entry, repository-index, index-version, index-entry-count, index-entry, index-entries): Delete functions. (%oid, %index-time, %index-entry): Delete variables. (<index-time>, <index-entry>): Delete types. (head-tree): New function. (git-tracked-files): Find git tracked files from HEAD, not from index.
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-30web: server: Grant read-write permissions to all on Unix socket.Arun Isaac
* tissue/web/server.scm (start-web-server): Grant read-write permissions to all on Unix socket.
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-30web: server: Make CSS representationally more concise.Arun Isaac
* tissue/web/server.scm (%css): Make CSS representationally more concise by removing blank lines and squeezing one-rule blocks into a single line.
2022-06-30web: server: Do not pad search results.Arun Isaac
* tissue/web/server.scm (%css)[.search-results]: Do not pad.
2022-06-30web: server: Add class to search results ul list.Arun Isaac
* tissue/web/server.scm (make-search-page): Add class "search-results" to search results ul.
2022-06-30web: server: Display estimated number of matches.Arun Isaac
* tissue/web/server.scm: Import (xapian wrap). Import parse-query from (xapian xapian) renaming it to xapian:parse-query. (make-search-page): Display estimated number of matches. (handler): Pass estimated number of matches to make-search-page.
2022-06-30search: Separate out query parsing into public function.Arun Isaac
* tissue/search.scm: Import parse-query from (xapian xapian) renaming it to xapian:parse-query. (parse-query): New public function. (search-fold): Use parse-query.
2022-06-30web: server: Re-indent make-search-page.Arun Isaac
* tissue/web/server.scm (make-search-page): Re-indent.
2022-06-29Makefile: Remove top_level_module_dir suffix from scmdir and godir.Arun Isaac
* Makefile (scmdir, godir): Remove top_level_module_dir suffix.
2022-06-29Makefile: Preserve directory structure during installation.Arun Isaac
* Makefile (install): Preserve directory structure when installing sources and objects.
2022-06-29Makefile: Remove dependencies of phony target `install'.Arun Isaac
* Makefile (install): Remove dependencies.
2022-06-29web: server: Self-document search filters.Arun Isaac
* tissue/web/server.scm (make-search-page): Self-document search filters. (%css)[.search-hint, .search-filter]: New rules.
2022-06-29search: Rename last-updater to lastupdater.Arun Isaac
Xapian doesn't seem to like hyphens. * tissue/search.scm (search-fold): Rename last-updater to lastupdater.
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.