From 71d227376f574210ce711b41d944e434da74e374 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Wed, 6 Apr 2022 15:32:43 -0400 Subject: [PATCH] docs: update readme --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 85e6ce9589a4de3df6a2862d63d05286e7da736d..bdcb11ded6b6c9de318c9f7162b64eacbb1dbfc4 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,8 @@ name: Soft Serve host: localhost port: 23231 -# The access level for anonymous users. Options are: read-write, read-only -# and no-access. +# Access level for anonymous users. Options are: admin-access, read-write, +# read-only, and no-access. anon-access: read-write # You can grant read-only access to users without private keys. @@ -197,40 +197,68 @@ When a repo is highlighted you can use the following keys for navigation: * `C` – View the commit log for the repo * `B` – View branches and tags for the repo -## Printing files over SSH +## The Soft Serve SSH CLI -Example tree and file output on the CLI +```sh +$ ssh -p 23231 localhost help +Soft Serve is a self-hostable Git server for the command line. -Soft Serve also has the ability to print files and directories directly from a -remote repo without the need to clone or use the TUI. +Usage: + ssh -p 23231 localhost [command] -To print a file tree for the project, just use the repo name as the SSH command -to your Soft Serve server: +Available Commands: + cat Outputs the contents of the file at path. + git Perform Git operations on a repository. + help Help about any command + ls List file or directory at path. + reload Reloads the configuration -``` -ssh git.charm.sh soft-serve +Flags: + -h, --help help for ssh + +Use "ssh -p 23231 localhost [command] --help" for more information about a command. ``` -From there you can print individual files: +Soft Serve SSH CLI has the ability to print files and list directories, perform +`git` operations on remote repos, and reload the configuration when necessary. +To print a file tree for the project, just use the `list` command along with the +repo name as the SSH command to your Soft Serve server: + +```sh +ssh -p 23231 localhost ls soft-serve ``` -ssh git.charm.sh soft-serve/cmd/soft/main.go + +From there, you can print individual files using the `cat` command: + +```sh +ssh -p 23231 localhost cat soft-serve/cmd/soft/main.go ``` You can add the `-c` flag to enable syntax coloring and `-l` to print line numbers: +```sh +ssh -p 23231 localhost cat soft-serve/cmd/soft/main.go -c -l ``` -ssh git.charm.sh soft-serve/cmd/soft/main.go -c -l + +You can also use the `git` command to perform Git operations on a repo such as changing the default branch name for instance: + +```sh +ssh -p 23231 localhost git soft-serve symbolic-ref HEAD refs/heads/taco ``` +Both `git` and `reload` commands need admin access to the server to work. So +make sure you have added your key as an admin user, or you’re using `anon-access: +admin-access` in the configuration. + ### A note about RSA keys Unfortunately, due to a shortcoming in Go’s `x/crypto/ssh` package, Soft Serve does not currently support access via new SSH RSA keys: only the old SHA-1 ones will work. -Until we sort this out you'll either need an SHA-1 RSA key or a key with +Until we sort this out you’ll either need an SHA-1 RSA key or a key with another algorithm, e.g. Ed25519. Not sure what type of keys you have? You can check with the following: