aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorm-chandler <mchandler89@gmail.com>2024-11-09 09:20:15 +1000
committerGitHub <noreply@github.com>2024-11-09 09:20:15 +1000
commitd31e4f88b1409f2325220cd483c03e6b9bce878f (patch)
tree425b129470914ee341655021c2034ff9476af27a
parent11bdeb09d654abe2e4daa66c4315b6dc982564e6 (diff)
parent216c660cd1a1fcbd189880548c33f7846542698e (diff)
Merge pull request #43 from Isaac-T-Hill/optional-ssh-keys
Add optional argument for ssh key path in utils
-rw-r--r--readme.md12
-rw-r--r--util/download-latest-save.bash14
-rw-r--r--util/upload-save.bash10
3 files changed, 31 insertions, 5 deletions
diff --git a/readme.md b/readme.md
index 9231797..e5a69de 100644
--- a/readme.md
+++ b/readme.md
@@ -69,6 +69,12 @@ Use the automation in `util/upload-save.bash` to upload your save file to your s
bash util/upload-save.bash ~/path/to/my/save.zip $your_ec2_ip_or_remote_name
```
+Optionally, you can specify a path to a private key with a bash variable rather than relying on default ssh keys.
+
+``` bash
+FACTORIO_PEM=~/path/to/my.pem bash util/upload-save.bash ~/path/to/my/save.zip $your_ec2_ip_or_remote_name
+```
+
This is just an automated implementation of the slower version below.
##### Fast save download (Recommended)
@@ -79,6 +85,12 @@ Use the automation in `util/download-latest-save.bash` to download the latest (m
bash util/download-latest-save.bash $your_ec2_ip_or_remote_name
```
+Optionally, you can specify a path to a private key with a bash variable rather than relying on default ssh keys.
+
+``` bash
+FACTORIO_PEM=~/path/to/my.pem bash util/download-latest-save.bash $your_ec2_ip_or_remote_name
+```
+
Your server needs to be running for this to work and it should download your latest save to your local directory.
##### Manual upload process (for understanding the system)
diff --git a/util/download-latest-save.bash b/util/download-latest-save.bash
index 2a84660..c1d0f0d 100644
--- a/util/download-latest-save.bash
+++ b/util/download-latest-save.bash
@@ -7,12 +7,20 @@ if [ $# -ne 1 ]; then
fi
remote_name="$1"
+key_path=""
+
+# Check if custom PEM file is provided
+if [ -n "$FACTORIO_PEM" ]; then
+ key_path="-i $FACTORIO_PEM"
+fi
# Generate a human-readable timestamp
timestamp=$(date +"%Y-%m-%d_%H-%M-%S")
+
+
# SSH into the remote instance to find the most recent save file
-ssh_output=$(ssh "ec2-user@$remote_name" << EOF
+ssh_output=$(ssh $key_path "ec2-user@$remote_name" << EOF
# Record the current directory
current_dir=\$(pwd)
@@ -59,9 +67,9 @@ latest_file=$(basename "$latest_file_path")
# Download the file from the remote instance to the current local directory with the new filename
new_filename="${remote_name}_${timestamp}_${latest_file}"
-scp "ec2-user@$remote_name:$latest_file_path" "./$new_filename"
+scp $key_path "ec2-user@$remote_name:$latest_file_path" "./$new_filename"
# Clean up the temporary file on the remote instance
-ssh "ec2-user@$remote_name" "rm -f $latest_file_path"
+ssh $key_path "ec2-user@$remote_name" "rm -f $latest_file_path"
echo "Download complete. The latest save file has been saved as '$new_filename' in your current directory." \ No newline at end of file
diff --git a/util/upload-save.bash b/util/upload-save.bash
index 9c66030..4cd55e8 100644
--- a/util/upload-save.bash
+++ b/util/upload-save.bash
@@ -9,6 +9,12 @@ fi
# Get the file path and EC2 address from command line arguments
save_file="$1"
ec2_address="$2"
+key_path=""
+
+# Check if custom PEM file is provided
+if [ -n "$FACTORIO_PEM" ]; then
+ key_path="-i $FACTORIO_PEM"
+fi
# Check if the file exists
if [ ! -f "$save_file" ]; then
@@ -18,10 +24,10 @@ fi
# Upload the save file to the EC2 instance
echo "Uploading save file to EC2 instance..."
-scp "$save_file" "ec2-user@$ec2_address:~/"
+scp $key_path "$save_file" "ec2-user@$ec2_address:~/"
# SSH into the EC2 instance and perform the required operations
-ssh "ec2-user@$ec2_address" << EOF
+ssh $key_path "ec2-user@$ec2_address" << EOF
# Get the Factorio container ID
container_id=\$(docker ps | grep factoriotools/factorio | awk '{print \$1}' | cut -c1-3)
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage