# Home <!-- KiSS is for Shell Scripts --> <div style="font-size:larger; margin-top:12px; text-decoration:underline"> <b>K</b>iSS <b>i</b>s for <b>S</b>hell <b>S</b>scripts </div> <!-- Inline style sheet --> <style> h1 { margin-top:20px } p { max-width:760px } ol { max-width:760px; font-size:smaller; padding:0 20px } </style> <!-- ~/fossil/build/fossil-sebyte/www/embeddeddoc.wiki Unfortunately, server-side text substitution of $ROOT with the baseurl doesn't work with Markdown images, so the localhost baseurl must be used to begin with: .----- baseurl -----..--- file path ---. http://localhost:8080/doc/ckout/bash.jpg When ready, add an image as unversioned content, like so: fossil> uv add bash.jpg --as image/bash.jpg (Optionally, visit the UV web interface at http://localhost:8080/uvlist to check.) To preview the image as unversioned content, the file path must now be changed: .----- baseurl -----..--- file path --. http://localhost:8080/uv/image/bash.jpg Finally, the localhost baseurl should be replaced with the short public baseurl, in this case /kiss, before committing. --> ![Fossil SCM](/kiss/uv/image/fossil.gif) ![GNU Bash](/kiss/uv/image/bash.jpg) ![POSIX](/kiss/uv/image/posix.jpg) <!-- Description --> KiSS is a single [Fossil][] repository hosting multiple shell scripts. # Repository structure Project separation is achieved by organising the repository into project _trees_, each with their own trunk<sup>1</sup>, e.g. [mash][mash-tl], and release or development branches prefixed with the name of the trunk to which they are attached, e.g. mash-hack. The Fossil default branch [trunk][trunk-tl] is used for miscellaneous files shared between projects, e.g. images, licenses and tools, plus the [Markdown source][] for this page. <ol><li>A branch beginning with an <em>orphaned</em> checkin/commit. Having no ultimate parent, a trunk cannot easily be merged with any other branch.</li></ol> [Fossil]: https://fossil-scm.org "Fossil SCM home" [Emacs]: https://www.gnu.org/software/emacs/ "GNU Emacs home" [mash-tl]: /timeline?r=mash&v "Timeline" [trunk-tl]: /timeline?r=trunk&v "Timeline" [Markdown source]: /doc/trunk/home.md?mimetype=text/plain # Projects | Trunk :|: Name/description | Release :|: Other documentation formats | [mash][] [🕟][mash-tl] :|: Use mash like make, but for everyday scripting | mash-0.1.0 :|: HTML PDF Info Text <!-- Tree (files) --> [mash]: /dir?ci=mash&type=tree "Files" <!-- Tree (timeline) --> [mash-tl]: /timeline?r=mash&v "Timeline" <!-- Release tarball --> [mash-0.1.0]: /uv/mash-0.1.0.tgz "Compressed tarball" <!-- Documentation --> [mash-h]: /doc/mash/doc/ "HTML manual (inline)" [mash-s]: /doc/mash/doc/mash.html "HTML manual (standalone)" [mash-p]: /doc/mash/doc/mash.pdf "PDF manual" [mash-i]: /doc/mash/doc/mash.info "Info manual" [mash-t]: /doc/mash/doc/mash.text?mimetype=text/plain "Plain text manual (inline)" # Anonymous quick start (*nix) ``` $ mkdir --parents kiss/trunk $ cd kiss $ fossil clone https://software.sebyte.me/kiss kiss.fossil [...] $ cd trunk $ fossil open ../kiss.fossil [...] $ tool/checkout-trunks.sh # checkout each project under ../<project-trunk>/ [...] $ cd .. && ls kiss.fossil mash trunk ```