Add preliminary support for Duck
This commit is contained in:
parent
5fdabf3e75
commit
c8aa1eb481
52
script/dev-env-duck.sh
Normal file
52
script/dev-env-duck.sh
Normal file
@ -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 $@ ; }
|
||||||
|
|
@ -10,6 +10,9 @@ GARAGE_DEBUG="${REPO_FOLDER}/target/debug/"
|
|||||||
GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
|
GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
|
||||||
PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
|
PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
|
||||||
|
|
||||||
|
# @FIXME Duck is not ready for testing, we have a bug
|
||||||
|
SKIP_DUCK=1
|
||||||
|
|
||||||
echo "⏳ Setup"
|
echo "⏳ Setup"
|
||||||
cargo build
|
cargo build
|
||||||
${SCRIPT_FOLDER}/dev-clean.sh
|
${SCRIPT_FOLDER}/dev-clean.sh
|
||||||
@ -90,6 +93,22 @@ if [ -z "$SKIP_RCLONE" ]; then
|
|||||||
done
|
done
|
||||||
fi
|
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
|
rm /tmp/garage.{1,2,3}.rnd
|
||||||
|
|
||||||
if [ -z "$SKIP_AWS" ]; then
|
if [ -z "$SKIP_AWS" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user