summaryrefslogtreecommitdiff
path: root/bin
AgeCommit message (Collapse)Author
2023-06-06bin: Preserve 0th command line argument when using search alias.Morgan Smith
There is literally no reason to do this as it's never used but it is technically more correct. * bin/tissue (main): Preserve 0th command line argument when using search alias. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-06-06bin: Allow main file to be loaded without executing main.Morgan Smith
Call main from the shebang command instead of calling it directly. This allows us to run "guile -l bin/tissue" without actually running main. This seems to be important for Emacs Geiser as it freezes up without this fix. * bin/tissue: Call main from shebang. Do not call main directly. (main): Accept args as regular argument instead of as a rest argument. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-05-30bin: Actually load config file instead of reading and evaluating it.Arun Isaac
Reading and evaluating the config file was a hack put in when the config file was read directly from the git repository without checking it out. We need this no longer. Besides, it is an inconvenience because the config file cannot use current-filename. * bin/tissue (load-config): Actually load config file instead of reading and evaluating the read string.
2023-05-30Add Emacs mode identifiers to ambiguous files.Morgan Smith
* bin/tissue: Add Emacs mode identifier. * pre-inst-env: Add Emacs mode identifier. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-05-30bin: Enable use of pagers other then less.Morgan Smith
Previous logic assumed that the pager could accept the command line argument "--raw". Replace this logic by setting the environment variable "LESS". This idea is inspired by git. * bin/tissue (main): Set "LESS" environment variable. (tissue-search): Don't run pager with "--raw" argument. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-01-29bin: Indicate in synopsis that host is required for tissue-pull.Arun Isaac
* bin/tissue (tissue-pull): Indicate in synopsis that host is a required argument.
2023-01-29bin: Remove note about restoring load path.Arun Isaac
Restoring the load path since code could already have been loaded into the guile process and mutated its state. Besides, now that we restrict each tissue-pull invocation to only one host, it is not necessary to restore the load path. * bin/tissue (pull): Remove TODO note about restoring load path.
2023-01-29bin: Allow pulling only one host in each invocation.Arun Isaac
* bin/tissue (tissue-pull): Allow pulling only one host in each invocation.
2023-01-29bin: Show options placeholder in tissue-pull subcommand usage.Arun Isaac
* bin/tissue (tissue-pull): Show options placeholder in subcommand usage.
2023-01-29git: Deprecate call-with-file-in-git.Arun Isaac
Functions called by call-with-file-in-git may expect to read files directly off the filesystem. These functions are not all within the user's control and cannot be rewritten to do otherwise. It is more robust to provide a filesystem checkout of the git repository like these functions expect. In this commit, we deprecate call-with-file-in-git and replace calls to it with call-with-input-file. These invocations have been arranged such that they all happen at the top level of a repository checkout. * tissue/git.scm (call-with-file-in-git): Delete function. * .dir-locals.el (scheme-mode): Unregister it. * bin/tissue (tissue-show, load-config), tissue/file-document.scm (file-text, read-gemtext-document), tissue/issue.scm (read-gemtext-issue): Replace call-with-file-in-git with call-with-input-file. (pull, tissue-web): Call load-config from the top level of a repository checkout.
2023-01-29bin: Pass list of indexed documents explicitly to index function.Arun Isaac
* bin/tissue (index): Accept list of indexed documents as an argument instead of implicitly accessing it by loading the config. (pull, main): Pass list of indexed documents to index.
2023-01-29web: Do not temporarily checkout repository when serving it.Arun Isaac
Now that snippet source texts are interred into the xapian index, the web server does not need a repository checkout. * bin/tissue (tissue-web): Do not temporarily checkout repositories being served. * tissue/web/server.scm (handler): Do not change into repository directory. * tissue/git.scm (call-with-temporary-checkouts): Delete function. * .dir-locals.el (scheme-mode): Unregister it.
2023-01-29bin: Do not change into state directory when checking out.Arun Isaac
Since the checkouts are created in the system-dependent temporary directory, we no longer need to change into the state directory. * bin/tissue (tissue-web): Do not change into state directory when checking out.
2023-01-28bin: Pass temporary checkout to server handler.Arun Isaac
* bin/tissue (tissue-web): Pass temporary checkout of git repository, not merely a bare repository, to server handler.
2023-01-28bin: Use call-with-temporary-checkout when pulling.Arun Isaac
* bin/tissue (pull): Use call-with-temporary-checkout.
2023-01-23bin: Add repository top level directory to load path.Arun Isaac
* bin/tissue (main, pull): Add top level directory of repository to load path.
2023-01-23bin: Create xapian directory only when it does not exist.Arun Isaac
* bin/tissue (pull): Create xapian directory only when it does not exist.
2023-01-23bin: Change to temporary clone before indexing.Arun Isaac
Indexing might refer to files on the filesystem. * bin/tissue (pull): Change to temporary clone of repository before indexing.
2023-01-23web: Change to temporary clone before building website.Arun Isaac
* tissue/web/static.scm (build-website): Expect to be at the top level of the repository to be exported. * bin/tissue (pull): Create a temporary clone of the repository and change to it before calling build-website.
2022-12-25bin: Replace define* with define.Arun Isaac
* bin/tissue (load-config): Define using define instead of define*.
2022-12-25tissue: Deprecate #:project configuration parameter.Arun Isaac
The project name is not used anywhere now. If it is required, it should be passed through the lexical context of closures in the tissue configuration object. * tissue/tissue.scm (<tissue-configuration>)[project]: Delete field. (tissue-configuration-project): Delete function. (tissue-configuration): Remove project argument. * tissue.scm (tissue-configuration)[#:project]: Delete parameter. * tissue/web/static.scm (%project-name): Delete parameter. * bin/tissue (pull): Do not parameterize %project-name.
2022-12-25web: static: Introduce functional html engine customizer.Arun Isaac
* tissue/web/static.scm (engine-custom-set): New function. (html-engine): New public function. (gemtext-exporter, skribe-exporter): Use html-engine in default value of engine.
2022-12-25web: dev: Accept thunk to read project configuration.Arun Isaac
To the development server, pass a thunk to read project configuration instead of the project configuration itself. This allows us to hack on the project's tissue.scm without having to restart the development server to see changes. * bin/tissue (tissue-web-dev): Pass thunk to read project configuration instead of the project configuration itself. * tissue/web/dev.scm (handler, start-dev-web-server): Accept thunk to read project configuration instead of the project configuration itself.
2022-12-24bin: Pass along entire project configuration object to servers.Arun Isaac
Themes should be free to access the entirety of the project configuration. It is impossible to predict which parts of the project configuration they will need. * bin/tissue (tissue-web, tissue-web-dev): Pass entire configuration object to start-web-server and start-dev-web-server respectively. * tissue/web/dev.scm: Import (tissue tissue). (handler, start-dev-web-server): Accept entire configuration object. * tissue/web/server.scm: Import (tissue tissue). (search-handler, start-web-server): Accept entire configuration object.
2022-12-24bin: Expose new development web server.Arun Isaac
* bin/tissue: Import (tissue web dev). (tissue-web-dev): Run the new development web server. (main): Remove web-build command. (print-usage): Delist deprecated web-build command. Update synopsis of web-dev command. (tissue-web-build): Delete function.
2022-09-19bin: Print error message and exit on user-error conditions.Arun Isaac
This allows us to report fatal user errors and exit. * bin/tissue (main): Print error message and exit on user-error conditions.
2022-09-19bin: Error out if web-dev subcommand is not given a website directory.Arun Isaac
* bin/tissue (tissue-web-dev): Raise user error if not given a website-directory command-line argument.
2022-09-19bin: Define &user-error-condition.Arun Isaac
* bin/tissue (&user-error-condition): New condition type.
2022-09-19bin: Separate development and deployment subcommands in listing.Arun Isaac
* bin/tissue (print-usage): Separate development and deployment subcommands in listing.
2022-09-19bin: Clarify that web-dev serves both built website and issues.Arun Isaac
* bin/tissue (tissue-web-dev, print-usage): Clarify in the usage summary that web-dev serves both the built website and the issues.
2022-09-19bin: Deprecate tissue index subcommand.Arun Isaac
The index is built on all tissue subcommands. There is no need for a separate subcommand to build the index. Having a separate subcommand only complicates the command-line interface and confuses the user. * bin/tissue (tissue-index): Delete function. (print-usage): Unlist index subcommand. (main): Do not call tissue-index.
2022-07-23bin: Add tissue web-dev subcommand.Arun Isaac
* bin/tissue (tissue-web-dev): New function. (print-usage): List the tissue web-dev subcommand. (main): Call tissue-web-dev.
2022-07-23bin: Abstract out REPL listen code.Arun Isaac
* bin/tissue (start-repl): New function. (listen-repl-option): New variable. (tissue-web): Use listen-repl-option. Call start-repl.
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.