summaryrefslogtreecommitdiff
path: root/bin
AgeCommit message (Expand)Author
2023-06-06bin: Preserve 0th command line argument when using search alias.•••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> Morgan Smith
2023-06-06bin: Allow main file to be loaded without executing main.•••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> Morgan Smith
2023-05-30bin: Actually load config file instead of reading and evaluating it.•••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. Arun Isaac
2023-05-30Add Emacs mode identifiers to ambiguous files.•••* bin/tissue: Add Emacs mode identifier. * pre-inst-env: Add Emacs mode identifier. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net> Morgan Smith
2023-05-30bin: Enable use of pagers other then less.•••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> Morgan Smith
2023-01-29bin: Indicate in synopsis that host is required for tissue-pull.•••* bin/tissue (tissue-pull): Indicate in synopsis that host is a required argument. Arun Isaac
2023-01-29bin: Remove note about restoring load path.•••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. Arun Isaac
2023-01-29bin: Allow pulling only one host in each invocation.•••* bin/tissue (tissue-pull): Allow pulling only one host in each invocation. Arun Isaac
2023-01-29bin: Show options placeholder in tissue-pull subcommand usage.•••* bin/tissue (tissue-pull): Show options placeholder in subcommand usage. Arun Isaac
2023-01-29git: Deprecate call-with-file-in-git.•••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. Arun Isaac
2023-01-29bin: Pass list of indexed documents explicitly to index function.•••* 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. Arun Isaac
2023-01-29web: Do not temporarily checkout repository when serving it.•••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. Arun Isaac
2023-01-29bin: Do not change into state directory when checking out.•••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. Arun Isaac
2023-01-28bin: Pass temporary checkout to server handler.•••* bin/tissue (tissue-web): Pass temporary checkout of git repository, not merely a bare repository, to server handler. Arun Isaac
2023-01-28bin: Use call-with-temporary-checkout when pulling.•••* bin/tissue (pull): Use call-with-temporary-checkout. Arun Isaac
2023-01-23bin: Add repository top level directory to load path.•••* bin/tissue (main, pull): Add top level directory of repository to load path. Arun Isaac
2023-01-23bin: Create xapian directory only when it does not exist.•••* bin/tissue (pull): Create xapian directory only when it does not exist. Arun Isaac
2023-01-23bin: Change to temporary clone before indexing.•••Indexing might refer to files on the filesystem. * bin/tissue (pull): Change to temporary clone of repository before indexing. Arun Isaac
2023-01-23web: Change to temporary clone before building website.•••* 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. Arun Isaac
2022-12-25bin: Replace define* with define.•••* bin/tissue (load-config): Define using define instead of define*. Arun Isaac
2022-12-25tissue: Deprecate #:project configuration parameter.•••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. Arun Isaac
2022-12-25web: static: Introduce functional html engine customizer.•••* 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. Arun Isaac
2022-12-25web: dev: Accept thunk to read project configuration.•••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. Arun Isaac
2022-12-24bin: Pass along entire project configuration object to servers.•••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. Arun Isaac
2022-12-24bin: Expose new development web server.•••* 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. Arun Isaac
2022-09-19bin: Print error message and exit on user-error conditions.•••This allows us to report fatal user errors and exit. * bin/tissue (main): Print error message and exit on user-error conditions. Arun Isaac
2022-09-19bin: Error out if web-dev subcommand is not given a website directory.•••* bin/tissue (tissue-web-dev): Raise user error if not given a website-directory command-line argument. Arun Isaac
2022-09-19bin: Define &user-error-condition.•••* bin/tissue (&user-error-condition): New condition type. Arun Isaac
2022-09-19bin: Separate development and deployment subcommands in listing.•••* bin/tissue (print-usage): Separate development and deployment subcommands in listing. Arun Isaac
2022-09-19bin: Clarify that web-dev serves both built website and issues.•••* bin/tissue (tissue-web-dev, print-usage): Clarify in the usage summary that web-dev serves both the built website and the issues. Arun Isaac
2022-09-19bin: Deprecate tissue index subcommand.•••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. Arun Isaac
2022-07-23bin: Add tissue web-dev subcommand.•••* bin/tissue (tissue-web-dev): New function. (print-usage): List the tissue web-dev subcommand. (main): Call tissue-web-dev. Arun Isaac
2022-07-23bin: Abstract out REPL listen code.•••* bin/tissue (start-repl): New function. (listen-repl-option): New variable. (tissue-web): Use listen-repl-option. Call start-repl. Arun Isaac
2022-07-21bin: Add tissue web-build subcommand.•••* bin/tissue (tissue-web-build): New function. * bin/tissue (print-usage): List web-build subcommand. (main): Invoke tissue-web-build. Arun Isaac
2022-07-21web: server: Be unaware of the state directory.•••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. Arun Isaac
2022-07-20bin: Do not print canonical paths when pulling.•••`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. Arun Isaac
2022-07-13document: Move <file-document> code to a new (tissue file-document).•••* 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). Arun Isaac
2022-07-09commit: Index commit messages too.•••* 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. Arun Isaac
2022-07-09bin: Move indexing document type into document-term-generator.•••* bin/tissue (index): Move indexing document type into document-term-generator generic function. * tissue/document.scm (document-term-generator): Index document type. Arun Isaac
2022-07-09issue: Move person related functions to (tissue person).•••* 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. Arun Isaac
2022-07-09bin: Rename run-web subcommand to web.•••* bin/tissue (tissue-run-web): Rename to tissue-web, and update synopsis in usage summary. (print-usage, main): Rename run-web to web. Arun Isaac
2022-07-09bin: Deprecate tissue web subcommand.•••* bin/tissue (tissue-web): Delete function. (print-usage): Unlist web subcommand. (main): Do not call tissue-web. Arun Isaac
2022-07-09bin: Make indexed documents a list of document objects.•••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. Arun Isaac
2022-07-06bin: Print out filenames when building website.•••* bin/tissue (pull): Print out filenames when building website. Arun Isaac
2022-07-06bin: Allow everyone to read built website.•••* bin/tissue (pull): Allow everyone to read built website. Arun Isaac
2022-07-06bin: Look for a default config file.•••* bin/tissue (%default-config-file): New variable. (default-configuration): Read default config file if it exists. Arun Isaac
2022-07-05bin: Refer to %xapian-index, not db-path, in main function.•••This bug was introduced in ec434ea0710e9ece9f5239c7fe2b1f965a53bea1 when copy-pasting code. * bin/tissue (main): Refer to %xapian-index, not db-path. Arun Isaac
2022-07-05bin: Guard main function against all git errors.•••* bin/tissue (main): Guard against git errors printing the error message instead of a backtrace. Arun Isaac
2022-07-05git: Add condition-git-error utility.•••* tissue/git.scm: Import (rnrs conditions) and (srfi srfi-1). (condition-git-error): New public function. * bin/tissue (default-configuration): Use condition-git-error. Arun Isaac
2022-07-05bin: Do not error out when current repository is not found.•••* bin/tissue: Import (rnrs conditions). (default-configuration): Do not error out when current repository is not found. Arun Isaac