You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
catcli/tests-ng/update.sh

74 lines
2.1 KiB
Bash

#!/usr/bin/env bash
# author: deadc0de6 (https://github.com/deadc0de6)
# Copyright (c) 2021, deadc0de6
cur=$(dirname "$(readlink -f "${0}")")
cwd=`pwd`
# pivot
cd ${cur}/../
python3 -m catcli.catcli --version
##########################################################
# the test
##########################################################
# create temp dirs
tmpd=`mktemp -d`
tmpu="${tmpd}/dir2"
mkdir -p ${tmpu}
# setup cleaning
clean() {
# clean
rm -rf ${tmpd} ${tmpu}
}
trap clean EXIT
catalog="${tmpd}/catalog"
mkdir -p ${tmpd}/dir
echo "abc" > ${tmpd}/dir/a
# index
python3 -m catcli.catcli -B index --catalog=${catalog} dir ${tmpd}/dir
python3 -m catcli.catcli -B ls --catalog=${catalog} dir
# get attributes
freeb=`python3 -m catcli.catcli -B ls --catalog=${catalog} dir | grep free: | sed 's/^.*,free:\([^ ]*\).*$/\1/g'`
dub=`python3 -m catcli.catcli -B ls --catalog=${catalog} dir | grep du: | sed 's/^.*,du:\([^ ]*\).*$/\1/g'`
dateb=`python3 -m catcli.catcli -B ls --catalog=${catalog} dir | grep date: | sed 's/^.*,date: \(.*\)$/\1/g'`
echo "before: free:${freeb} | du:${dub} | date:${dateb}"
# change content
echo "abc" >> ${tmpd}/dir/a
echo "abc" > ${tmpd}/dir/b
# move dir
cp -r ${tmpd}/dir ${tmpu}/
# sleep to force date change
sleep 1
# update
python3 -m catcli.catcli -B update -f --catalog=${catalog} dir ${tmpu}/dir
python3 -m catcli.catcli -B ls --catalog=${catalog} dir
# get new attributes
freea=`python3 -m catcli.catcli -B ls --catalog=${catalog} dir | grep free: | sed 's/^.*,free:\([^ ]*\).*$/\1/g'`
dua=`python3 -m catcli.catcli -B ls --catalog=${catalog} dir | grep du: | sed 's/^.*,du:\([^ ]*\).*$/\1/g'`
datea=`python3 -m catcli.catcli -B ls --catalog=${catalog} dir | grep date: | sed 's/^.*,date: \(.*\)$/\1/g'`
echo "after: free:${freea} | du:${dua} | date:${datea}"
# test they are all different
[ "${freeb}" = "${freea}" ] && echo "WARNING free didn't change!"
[ "${dub}" = "${dua}" ] && echo "WARNING du didn't change!"
[ "${dateb}" = "${datea}" ] && echo "date didn't change!" && exit 1
# pivot back
cd ${cwd}
# the end
echo "test \"`basename $0`\" success"
exit 0