#!/bin/bash
set -e
localdir=$1
eosdir=$2

echo "eos rclone $eosdir => $localdir"

eos mkdir -p /eos/$eosdir/cl/
eos chmod 777 /eos/$eosdir/cl/
eos rm -r /eos/$eosdir/cl/
eos mkdir -p /eos/$eosdir/cl/dir1/dir2/
test -d $localdir/cl/ && rm -rf $localdir/cl/
mkdir -p $localdir/cl/

# create some files
for name in `seq 1 100`; do 
    eos cp ${TESTSYSFILE1K-"/etc/passwd"} /eos/$eosdir/cl/dir1/dir2/file.$name
done
eos cp ${TESTSYSFILE1K-"/etc/passwd"} /eos/$eosdir/cl/file.0

# rclone to a local dir
eos -b rclone copy /eos/$eosdir/cl/ $localdir/cl/ --dryrun || exit -2
eos -b rclone copy /eos/$eosdir/cl/ $localdir/cl/ || exit -3
echo 
nfiles=`find /var/tmp/eos-instance-test/cl/ -type f | wc -l`
ndirs=`find /var/tmp/eos-instance-test/cl/ -type d | wc -l`

test $nfiles = "101" || exit -3
test $ndirs = "3" || exit -3

# rclone copy a symlink
eos file symlink /eos/$eosdir/cl/link.0 file.0 
eos -b rclone copy /eos/$eosdir/cl/ $localdir/cl/ || exit -4
nlinks=`find /var/tmp/eos-instance-test/cl/ -type l | wc -l`
test $nlinks = "1" || exit -4

eos file info /eos/$eosdir/cl

# remove the symlink and sync it back
eos rm /eos/$eosdir/cl/link.0
eos file info /eos/$eosdir/cl
eos -b rclone sync /eos/$eosdir/cl/ $localdir/cl/ --verbose || exit -5
nlinks=`find /var/tmp/eos-instance-test/cl/ -type l | wc -l`
test $nlinks = "1" || exit -5
eos stat /eos/$eosdir/cl/link.0 || exit -5

# add some new files locally
mkdir -p $localdir/cl/subtree/
for name in `seq 1 50`; do 
    eos cp ${TESTSYSFILE1K-"/etc/passwd"} $localdir/cl/subtree/f.$name
done

eos -b rclone sync /eos/$eosdir/cl/ $localdir/cl/ --verbose || exit -6
nfiles=`eos newfind -f /eos/$eosdir/cl/ | wc -l`

test $nfiles = "152" || exit -6


# remove a target file and try one-way sync with delete open

eos rm /eos/$eosdir/cl/file.0
eos -b rclone copy /eos/$eosdir/cl/ $localdir/cl/ --verbose --delete || exit -7

# local find does not find symlinks, so we have one less
nfiles=`find $localdir/cl/ -type f | wc -l`

test $nfiles = "150" || exit -7

echo
echo "eos-rclone: all tests passwd OK"
