From f146446de35c36b6e23126042b1d3b737dfad3c4 Mon Sep 17 00:00:00 2001 From: leadnaut Date: Sat, 17 Aug 2024 10:05:03 +1000 Subject: [PATCH] Added documentation to readme --- README.md | 15 +++++++++++++++ deploy.sh | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4113c86..10b0fc0 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,21 @@ To run a specific test, say `test_dummy.py`, use poetry run pytest tests/test_dummy.py ``` +## Deployment +To deploy a build to the Raspberry Pi use the `deploy.sh` script. This script will create a tarball of file listed in a text file, transfer it to +a specified hostname and untar it there. + +To use the script execute it in the project's root directory with, +```bash +./deploy.sh [pathfile] [username]@[hostname] +``` +For example, to deploy the files listed in `deploypaths.txt` to `testpi` (using username raspberry) the command would be +```bash +./deploy.sh deploypaths.txt raspberry@testpi +``` +The pathname file should contain a path to a file or directory on each line. If a directory is listed `deploy.sh` will copy the entire contents over. +You can use the `#` character at the start of a line to leave comments. + ## Code Styling We use [black](https://black.readthedocs.io/en/stable/) for automated code formatting. To run Black, run this command from the root of the repo: diff --git a/deploy.sh b/deploy.sh index 1d2914a..c4d06d0 100755 --- a/deploy.sh +++ b/deploy.sh @@ -5,7 +5,7 @@ WARN="[\033[1;33mWARN\033[0m]" INFO="[\033[1;32mINFO\033[0m]" ERROR="[\033[1;31mERROR\033[0m]" -PATHFILE='deploypaths.txt' +PATHFILE=$1 TEMPDIRPATH='package_temp' [ -d $TEMPDIRPATH ] @@ -57,7 +57,7 @@ if ! tar cf $TARNAME -C $TEMPDIRPATH "./build"; then exit 1 fi -SSHTARGET=$1 +SSHTARGET=$2 # Check if we can find target if ! nc -z $SSHTARGET 22 2>/dev/null; then echo -e "$ERROR Host unreachable"; @@ -72,6 +72,7 @@ if ! scp -q $TARNAME $SSHTARGET:~/; then exit 1 fi +echo -e "$INFO Extracting Build - the password may be needed again" if ! ssh $SSHTARGET "tar xf $TARNAME; rm $TARNAME"; then echo -e "$ERROR Remote extraction failed" cleanup