/t/t10-tarball-dar-blacklist.sh

http://github.com/sukria/Backup-Manager · Shell · 86 lines · 65 code · 12 blank · 9 comment · 6 complexity · 1ebe43217fb6e2f936cc01622033eade MD5 · raw file

  1. #!/bin/sh
  2. set -e
  3. source testlib.sh
  4. #verbose="true"
  5. #warnings="true"
  6. source confs/base.conf
  7. # taken verbatim from file attached to bug #4 that previously lived at
  8. # http://bugzilla.backup-manager.org/cgi-bin/attachment.cgi?id=1&action=view
  9. export BM_REPOSITORY_ROOT="$PWD/repository"
  10. export BM_ARCHIVE_METHOD="tarball"
  11. export BM_TARBALL_NAMEFORMAT="long"
  12. export BM_TARBALL_FILETYPE="dar"
  13. export BM_TARBALL_DUMPSYMLINKS="no"
  14. export BM_TARBALL_DIRECTORIES="$PWD/var/www/"
  15. export BM_TARBALL_BLACKLIST="$PWD/var/www/xim $PWD/var/www/Upload/ /tmp/ titi"
  16. source $locallib/sanitize.sh
  17. if [[ ! -x $dar ]]; then
  18. info "cannot run test, need $dar"
  19. exit 1
  20. fi
  21. # clean
  22. if [[ -e $PWD/var ]]; then
  23. rm -rf $PWD/var
  24. fi
  25. if [[ -e $PWD/repository ]]; then
  26. rm -rf $PWD/repository
  27. fi
  28. # environement
  29. mkdir $PWD/var
  30. mkdir $PWD/var/www
  31. mkdir $PWD/var/www/real
  32. mkdir $PWD/var/www/xim
  33. mkdir $PWD/var/www/Upload
  34. touch $PWD/var/www/file1
  35. touch $PWD/var/www/xim/file2
  36. touch $PWD/var/www/Upload/file3
  37. touch $PWD/var/www/real/file4
  38. # BM actions
  39. bm_init_env
  40. bm_init_today
  41. create_directories
  42. make_archives
  43. # test of success/failure
  44. name=$(get_dir_name "$PWD/var/www" "long")
  45. archive="$BM_ARCHIVE_PREFIX$name.$TODAY.master.1.dar"
  46. archive_name="$BM_ARCHIVE_PREFIX$name.$TODAY.master"
  47. if [[ -e $BM_REPOSITORY_ROOT/$archive ]]
  48. then
  49. tempfile=$(mktemp)
  50. dar -l $BM_REPOSITORY_ROOT/$archive_name > $tempfile
  51. if grep "xim/file2" $tempfile >/dev/null
  52. then
  53. warning "Archive seems to have the blacklisted dirs:"
  54. if [[ "$warnings" = "true" ]]; then
  55. echo "BM_TARBALL_BLACKLIST = $BM_TARBALL_BLACKLIST"
  56. cat $tempfile
  57. fi
  58. rm -f $tempfile
  59. rm -rf $PWD/repository
  60. rm -rf $PWD/var
  61. exit 1
  62. else
  63. rm -f $tempfile
  64. rm -rf $PWD/repository
  65. rm -rf $PWD/var
  66. exit 0
  67. fi
  68. else
  69. warning "$archive doesn't exists"
  70. rm -rf $PWD/repository
  71. rm -rf $PWD/var
  72. exit 1
  73. fi