From 5eac40377ab8526717c6e4564bc1ab3067db68d8 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Fri, 2 Jun 2023 10:53:07 +0200 Subject: Updated readme to reference the new blog post --- readme.md | 102 +++++++++++++++++++++++++++++++++++++++---------------------- readme.org | 24 +++++++++++++-- 2 files changed, 86 insertions(+), 40 deletions(-) diff --git a/readme.md b/readme.md index 0242a3f..bc9bd18 100644 --- a/readme.md +++ b/readme.md @@ -1,23 +1,27 @@ # Table of Contents -1. [Getting Started](#org9c3903e) - 1. [Usage](#org6fa9d8a) - 2. [Installation](#org10b2c96) - 1. [Prerequisites](#orgd426ed1) - 2. [Building Shackle](#orgb7eee70) - 3. [Creating the required directory structure](#orgf8fd81a) - 4. [Set Shackle as your default shell](#org58e1057) -2. [Operating System Support](#org8418be0) -3. [Development Guide](#org8b93b3d) - 1. [Development Environment Setup](#org6250a5d) - 2. [Running Tests](#org7f14941) - 3. [Linting](#orgc006671) - 4. [Building a Release Binary](#orgcd5123a) -4. [Roadmap / Issue Tracker TODO list](#orgba8330a) - 1. [MVP](#org565bb14) - 2. [Post-MVP](#org50cfb78) -5. [License](#org013cf1e) +1. [Getting Started](#orgd504466) + 1. [Usage](#orgaa56d06) + 2. [Installation](#org26cfe7c) + 1. [Background](#orgcc164e3) + 2. [Prerequisites](#org0cfd05b) + 3. [Building Shackle](#org44ca1cf) + 4. [Creating the required directory structure](#orgc188534) + 5. [Set Shackle as your default shell](#orge6ddfb3) +2. [Operating System Support](#orgc028af6) +3. [Development Guide](#org6f989dd) + 1. [Development Environment Setup](#orgf0cf08f) + 2. [Running Tests](#org91f4451) + 3. [Linting](#org71e8518) + 4. [Building a Release Binary](#org8fb9e6c) +4. [Roadmap / Issue Tracker TODO list](#org4ee647c) + 1. [MVP](#orge1019db) + 2. [Post-MVP](#org41cb56d) +5. [Support](#orgd5588f5) +6. [License](#org36ecb42) + + A shell for restricting access on a version control server. @@ -37,12 +41,12 @@ differences: - (coming soon!) Support for other other version control systems. - + # Getting Started - + ## Usage @@ -101,15 +105,28 @@ all of the options, and is a great way to learn what all the commands do. -h, --help Print help - + ## Installation - + + +### Background + +Shackle is designed to run on a Git server. The process of setting up your own +Git server, which is set up as described in the following two articles: + +- [initial server setup](https://www.worthe-it.co.za/blog/2022-06-10-how-to-train-your-git-server.html) +- [sharing repos](https://www.worthe-it.co.za/blog/2023-06-02-leveling-up-your-git-server-sharing-repos.html). + + + ### Prerequisites +The following programs much be installed: + - Git - This is used for git operations which are passed through for the operation of `git push` and `git fetch`. @@ -121,12 +138,14 @@ all of the options, and is a great way to learn what all the commands do. the OpenSSH daemon. - + ### Building Shackle -There is not yet a binary release of Shackle, so you need to build it yourself -from source. The easiest way to do this is using `cargo install`. +Binary releases of Shackle can be downloaded from [Codeberg](https://codeberg.org/worthe-it/shackle-shell/releases/). + +You can also build it yourself from source. The easiest way to do this is using +`cargo install`. This requires a the Rust toolchain and a C compiler. See the Development Environment Setup section below for more information on environment setup to @@ -137,7 +156,7 @@ build from source. cargo install shackle-shell - + ### Creating the required directory structure @@ -160,7 +179,7 @@ users have a `~/git` symlink in their home directory which actually points at chmod --recursive u=rwX,g=rwXs,o= ~/git/$GROUP - + ### Set Shackle as your default shell @@ -171,7 +190,7 @@ will be Shackle. sudo usermod --shell $HOME/.cargo/bin/shackle-shell $USER - + # Operating System Support @@ -182,12 +201,12 @@ currently tested, and there are currently no plans to do so. I would not expect it to work on Windows. - + # Development Guide - + ## Development Environment Setup @@ -231,7 +250,7 @@ environment ready. # Note: you need to log out and in again for the new group to take effect - + ## Running Tests @@ -240,7 +259,7 @@ All unit tests are run with Cargo. cargo test - + ## Linting @@ -253,7 +272,7 @@ And it can be run via Cargo. cargo clippy - + ## Building a Release Binary @@ -264,12 +283,12 @@ Release binaries should be built in release mode. After running this, the binary is available in `./target/release/shackle-shell` - + # Roadmap / Issue Tracker TODO list - + ## MVP @@ -303,7 +322,7 @@ After running this, the binary is available in `./target/release/shackle-shell` - [X] help docs on all the commands - + ## Post-MVP @@ -312,7 +331,7 @@ After running this, the binary is available in `./target/release/shackle-shell` - [X] clean up crates.io metadata - [X] crates.io friendly readme: needs to be markdown - [X] rename to something that isn't taken on crates.io (shackle-shell) -- [ ] publish to crates.io +- [X] publish to crates.io - [ ] project website - [ ] functions correctly when the git path isn't created with correct permissions yet @@ -324,7 +343,16 @@ After running this, the binary is available in `./target/release/shackle-shell` - [ ] pijul support on other commands - + + +# Support + +If you get value from this project, consider supporting me on [Patreon](https://www.patreon.com/worthe_it). Support +via Patreon helps to cover hosting, buying computer stuff, and will allow me to +spend more time writing articles and open source software. + + + # License diff --git a/readme.org b/readme.org index 9a93ef5..22629c1 100644 --- a/readme.org +++ b/readme.org @@ -90,8 +90,18 @@ all of the options, and is a great way to learn what all the commands do. ** Installation +*** Background + +Shackle is designed to run on a Git server. The process of setting up your own +Git server, which is set up as described in the following two articles: + +- [[https://www.worthe-it.co.za/blog/2022-06-10-how-to-train-your-git-server.html][initial server setup]] +- [[https://www.worthe-it.co.za/blog/2023-06-02-leveling-up-your-git-server-sharing-repos.html][sharing repos]]. + *** Prerequisites +The following programs much be installed: + - Git - This is used for git operations which are passed through for the operation of =git push= and =git fetch=. @@ -104,8 +114,10 @@ all of the options, and is a great way to learn what all the commands do. *** Building Shackle -There is not yet a binary release of Shackle, so you need to build it yourself -from source. The easiest way to do this is using =cargo install=. +Binary releases of Shackle can be downloaded from [[https://codeberg.org/worthe-it/shackle-shell/releases/][Codeberg]]. + +You can also build it yourself from source. The easiest way to do this is using +=cargo install=. This requires a the Rust toolchain and a C compiler. See the Development Environment Setup section below for more information on environment setup to @@ -274,7 +286,7 @@ After running this, the binary is available in =./target/release/shackle-shell= - [X] clean up crates.io metadata - [X] crates.io friendly readme: needs to be markdown - [X] rename to something that isn't taken on crates.io (shackle-shell) -- [ ] publish to crates.io +- [X] publish to crates.io - [ ] project website - [ ] functions correctly when the git path isn't created with correct permissions yet @@ -285,6 +297,12 @@ After running this, the binary is available in =./target/release/shackle-shell= - [ ] pijul fetch and pijul push - [ ] pijul support on other commands +* Support + +If you get value from this project, consider supporting me on [[https://www.patreon.com/worthe_it][Patreon]]. Support +via Patreon helps to cover hosting, buying computer stuff, and will allow me to +spend more time writing articles and open source software. + * License Licensed under [[./LICENSE][MIT License]]. -- cgit v1.2.3