aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2021-05-15 10:24:20 +0200
committerQuentin Dufour <quentin@deuxfleurs.fr>2021-05-15 10:24:20 +0200
commitc8aa1eb481c18b1a35ef45d37071ab1af804a382 (patch)
tree182cf2118eb4ba6fda104f15bc7336b8cdc1fcfa
parent5fdabf3e75ba16b5ceed99edb1912cb001765d03 (diff)
downloadgarage-c8aa1eb481c18b1a35ef45d37071ab1af804a382.tar.gz
garage-c8aa1eb481c18b1a35ef45d37071ab1af804a382.zip
Add preliminary support for Duckfeature/duck
-rw-r--r--script/dev-env-duck.sh52
-rwxr-xr-xscript/test-smoke.sh19
2 files changed, 71 insertions, 0 deletions
diff --git a/script/dev-env-duck.sh b/script/dev-env-duck.sh
new file mode 100644
index 00000000..f9d96021
--- /dev/null
+++ b/script/dev-env-duck.sh
@@ -0,0 +1,52 @@
+mkdir -p /tmp/garage.cyberduck.home/.duck/profiles
+
+DUCK_ACCESS_KEY=`cat /tmp/garage.s3 |cut -d' ' -f1`
+DUCK_SECRET_KEY=`cat /tmp/garage.s3 |cut -d' ' -f2`
+
+cat > /tmp/garage.cyberduck.home/.duck/credentials <<EOF
+https\://$DUCK_ACCESS_KEY@127.0.0.1\:4443=$DUCK_SECRET_KEY
+EOF
+
+cat > /tmp/garage.cyberduck.home/.duck/profiles/garage.cyberduckprofile <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>Protocol</key>
+ <string>s3</string>
+ <key>Vendor</key>
+ <string>garage</string>
+ <key>Scheme</key>
+ <string>https</string>
+ <key>Description</key>
+ <string>GarageS3</string>
+ <key>Default Hostname</key>
+ <string>127.0.0.1</string>
+ <key>Default Port</key>
+ <string>4443</string>
+ <key>Hostname Configurable</key>
+ <false/>
+ <key>Port Configurable</key>
+ <false/>
+ <key>Username Configurable</key>
+ <true/>
+ <key>Username Placeholder</key>
+ <string>Access Key ID (GK...)</string>
+ <key>Password Placeholder</key>
+ <string>Secret Key</string>
+ <key>Properties</key>
+ <array>
+ <string>s3service.disable-dns-buckets=true</string>
+ </array>
+ <key>Region</key>
+ <string>garage</string>
+ <key>Regions</key>
+ <array>
+ <string>garage</string>
+ </array>
+ </dict>
+</plist>
+EOF
+
+function duck { HOME=/tmp/garage.cyberduck.home/ command duck --username $DUCK_ACCESS_KEY $@ ; }
+
diff --git a/script/test-smoke.sh b/script/test-smoke.sh
index 9fe06de9..0417b2af 100755
--- a/script/test-smoke.sh
+++ b/script/test-smoke.sh
@@ -10,6 +10,9 @@ GARAGE_DEBUG="${REPO_FOLDER}/target/debug/"
GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
+# @FIXME Duck is not ready for testing, we have a bug
+SKIP_DUCK=1
+
echo "⏳ Setup"
cargo build
${SCRIPT_FOLDER}/dev-clean.sh
@@ -90,6 +93,22 @@ if [ -z "$SKIP_RCLONE" ]; then
done
fi
+# Duck (aka Cyberduck CLI)
+if [ -z "$SKIP_DUCK" ]; then
+ echo "🛠️ Testing with duck (aka cyberduck cli)"
+ source ${SCRIPT_FOLDER}/dev-env-duck.sh
+ duck --list garage:/
+ duck --mkdir "garage:/eprouvette/duck"
+ for idx in $(seq 1 3); do
+ duck --verbose --upload "garage:/eprouvette/duck/" "/tmp/garage.$idx.rnd"
+ duck --list garage:/eprouvette/duck/
+ duck --download "garage:/eprouvette/duck/garage.$idx.rnd" "/tmp/garage.$idx.dl"
+ diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl
+ rm /tmp/garage.$idx.dl
+ duck --delete "garage:/eprouvette/duck/garage.$idx.dk"
+ done
+fi
+
rm /tmp/garage.{1,2,3}.rnd
if [ -z "$SKIP_AWS" ]; then