From 6cdeab7820d5e56537dc161bd8037ca41d110b68 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Thu, 27 Apr 2023 11:31:13 +0200 Subject: Filling in the development dependencies --- readme.org | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/readme.org b/readme.org index 1aeb9a1..7c4e9a6 100644 --- a/readme.org +++ b/readme.org @@ -90,13 +90,71 @@ all of the options, and is a great way to learn what all the commands do. # TODO -# cargo install to build from source -# set as the user's shell -# create the appropriate directory structure +# - cargo install to build from source +# - set as the user's shell +# - create the appropriate directory structure +# - requires git installed on the server +# - I assume users will be connecting over SSH. This is not enforced by the shell. + +* Operating System Support + +Currently, Shackle Shell only supports running on Linux. + +It will likely work on other Unix-like platforms, such as MacOS, but this is not +currently tested, and there are currently no plans to do so. I would not expect +it to work on Windows. * Development Guide -# TODO +** Development Environment Setup + +- Rust + - This project is built using the Rust programming language, and its build + tool Cargo. Information on how to install these tools is available on [[https://www.rust-lang.org/learn/get-started][the + Rust website]]. +- C Compiler + - This is used to built one of the dependencies, libgit2. + # TODO how to get one? +- Docker + - Some of the tests use Docker to create a simulated environment. This can be + obtained from your operating system's package manager, or the [[https://www.docker.com/][Docker + website]]. + - Docker must be installed, with the =docker= executable on the path. + - Your user must have permission to use docker, including building and running + Docker containers. +- Git + - Some of the tests use Git to test the end to end functionality of the + shell. This can be obtained from your operating system's package manager, or + the [[https://git-scm.com/][Git website]]. + - Git must be installed, with the =git= executable on the path. +- SSH + - Some of the tests use an SSH client to test the end to end functionality of + the shell. I have tested this with OpenSSH, which can be obtained from your + operating system's package manager, or the [[https://git-scm.com/][Git website]]. + - with the =ssh= executable on the path. + +If you're running Arch Linux, these are the steps you'll need to get your +environment ready. + +# TODO: Test this in a VM, not in Docker. The Docker in Docker stuff doesn't +# work well. + +#+begin_src sh + sudo pacman -S rustup docker git openssh gcc + rustup default stable + sudo usermod -a -G docker $(whoami) + sudo systemctl start docker.service +#+end_src + +** Running Tests + +** Linting + +** Building a Release Binary + +#+begin_src sh + cargo build --release +#+end_src # need to have docker installed # cargo test --workspace @@ -139,6 +197,8 @@ all of the options, and is a great way to learn what all the commands do. - [X] proper licensing - [ ] all the getting started stuff in the readme +- [ ] clean up crates.io-friendly readme + - It needs to be markdown, and probably not all the content of the "full" readme? - [ ] consider having the workspace root abstract so that --workspace isn't needed - [ ] publish to crates.io - [ ] project website -- cgit v1.2.3