summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Wernick <justin@worthe-it.co.za>2023-06-02 10:53:07 +0200
committerJustin Wernick <justin@worthe-it.co.za>2023-06-02 10:53:07 +0200
commit5eac40377ab8526717c6e4564bc1ab3067db68d8 (patch)
tree674d8ec8a6d57870973b308cdb108a062f091795
parentf129dadf8ce4971f794ae325f610be3e8fdcbea8 (diff)
Updated readme to reference the new blog post
-rw-r--r--readme.md102
-rw-r--r--readme.org24
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)
+
+<https://img.shields.io/crates/v/shackle-shell>
A shell for restricting access on a version control server.
@@ -37,12 +41,12 @@ differences:
- (coming soon!) Support for other other version control systems.
-<a id="org9c3903e"></a>
+<a id="orgd504466"></a>
# Getting Started
-<a id="org6fa9d8a"></a>
+<a id="orgaa56d06"></a>
## 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
-<a id="org10b2c96"></a>
+<a id="org26cfe7c"></a>
## Installation
-<a id="orgd426ed1"></a>
+<a id="orgcc164e3"></a>
+
+### 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).
+
+
+<a id="org0cfd05b"></a>
### 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.
-<a id="orgb7eee70"></a>
+<a id="org44ca1cf"></a>
### 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
-<a id="orgf8fd81a"></a>
+<a id="orgc188534"></a>
### 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
-<a id="org58e1057"></a>
+<a id="orge6ddfb3"></a>
### Set Shackle as your default shell
@@ -171,7 +190,7 @@ will be Shackle.
sudo usermod --shell $HOME/.cargo/bin/shackle-shell $USER
-<a id="org8418be0"></a>
+<a id="orgc028af6"></a>
# 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.
-<a id="org8b93b3d"></a>
+<a id="org6f989dd"></a>
# Development Guide
-<a id="org6250a5d"></a>
+<a id="orgf0cf08f"></a>
## 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
-<a id="org7f14941"></a>
+<a id="org91f4451"></a>
## Running Tests
@@ -240,7 +259,7 @@ All unit tests are run with Cargo.
cargo test
-<a id="orgc006671"></a>
+<a id="org71e8518"></a>
## Linting
@@ -253,7 +272,7 @@ And it can be run via Cargo.
cargo clippy
-<a id="orgcd5123a"></a>
+<a id="org8fb9e6c"></a>
## 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`
-<a id="orgba8330a"></a>
+<a id="org4ee647c"></a>
# Roadmap / Issue Tracker TODO list
-<a id="org565bb14"></a>
+<a id="orge1019db"></a>
## MVP
@@ -303,7 +322,7 @@ After running this, the binary is available in `./target/release/shackle-shell`
- [X] help docs on all the commands
-<a id="org50cfb78"></a>
+<a id="org41cb56d"></a>
## 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
-<a id="org013cf1e"></a>
+<a id="orgd5588f5"></a>
+
+# 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.
+
+
+<a id="org36ecb42"></a>
# 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]].