60 lines
1.6 KiB
Bash
Executable File
60 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Read all
|
|
# NC_SHARE_LINK_URL.*
|
|
# NC_SHARE_LINK_PASSWORD.*
|
|
# NC_SHARE_LINK_DESTINATION.*
|
|
# With .* equals
|
|
|
|
while IFS='=' read key value ; do
|
|
# suffix of sharer link
|
|
name="${key#NC_SHARE_LINK_URL}"
|
|
echo "Rcloning $name..."
|
|
|
|
password_varname="NC_SHARE_LINK_PASSWORD$name"
|
|
destination_varname="NC_SHARE_LINK_DESTINATION$name"
|
|
|
|
# Empty by default
|
|
url="${!key}"
|
|
password="${!password_varname:-}"
|
|
destination="${!destination_varname:-}"
|
|
|
|
# Ensure we have a link
|
|
if [ -z "$url" ] ; then
|
|
echo "env var NC_SHARE_LINK_URL$name is empty."
|
|
exit 1
|
|
fi
|
|
|
|
# Ensure we have a destination
|
|
if [ -z "$destination" ] ; then
|
|
echo "env var NC_SHARE_LINK_DESTINATION$name is empty."
|
|
exit 1
|
|
elif [ ! -d "$destination" ] ; then
|
|
mkdir "$destination"
|
|
fi
|
|
|
|
# Get content from nextcloud
|
|
webdav_url="$(echo "$url" | sed 's#/s/.*#/public.php/webdav/#')"
|
|
webdav_user="$(echo "$url" |sed 's#.*/s/##')"
|
|
webdav_pass="$(rclone obscure "$password")"
|
|
|
|
rclone sync --config=/notfound --webdav-url="$webdav_url" --webdav-user="$webdav_user" --webdav-pass="$webdav_pass" --webdav-vendor=nextcloud :webdav: "$destination"
|
|
|
|
# Go to website
|
|
cd "$destination"
|
|
|
|
# Rename .attachement dirs created by nextcloud
|
|
while read filename ; do
|
|
oldname="$(basename "$filename")"
|
|
newname="${oldname:1}"
|
|
path="$(dirname "$filename")"
|
|
# And rename their references in md files
|
|
find -type f -iname '*.md' -exec sed -i "s/$oldname/$newname/g" {} \;
|
|
mv "$path/$oldname" "$path/$newname"
|
|
done < <(find -type d -name '.attachments.*')
|
|
|
|
cd - &>/dev/null
|
|
echo "Rcloning done!"
|
|
done < <(env | grep ^NC_SHARE_LINK_URL )
|