copier.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/bash
  2. # by DSR! from https://github.com/xchwarze/wifi-pineapple-cloner
  3. FILE_LIST="$1"
  4. FROM_FOLDER="$2"
  5. TO_FOLDER="$3"
  6. COUNTER=0
  7. if [[ ! -f "$FILE_LIST" || ! -d "$FROM_FOLDER" || "$TO_FOLDER" == "" ]]; then
  8. echo "Run with \"copier.sh [FILE_LIST] [FROM_FOLDER] [TO_FOLDER]\""
  9. echo " FILE_LIST -> flavor file list"
  10. echo " FROM_FOLDER -> path to base fs"
  11. echo " TO_FOLDER -> path to new fs"
  12. exit 1
  13. fi
  14. FILE_LIST="$(realpath $FILE_LIST)"
  15. FROM_FOLDER="$(realpath $FROM_FOLDER)"
  16. TO_FOLDER="$(realpath $TO_FOLDER)"
  17. echo "Filelist2Copy - by DSR!"
  18. echo "******************************"
  19. echo ""
  20. echo "[*] Start copy loop"
  21. rm -rf "$TO_FOLDER"
  22. mkdir "$TO_FOLDER"
  23. for FILE in $(cat "$FILE_LIST")
  24. do
  25. if [[ "${FILE:0:1}" != '/' ]]; then
  26. continue
  27. fi
  28. # fix name chars
  29. FILE=$(echo $FILE | sed $'s/\r//')
  30. # check exist
  31. if [[ ! -f "$FROM_FOLDER$FILE" ]] && [[ ! -d "$FROM_FOLDER$FILE" ]]; then
  32. echo "[!] File does not exist: ${FROM_FOLDER}${FILE}"
  33. continue
  34. fi
  35. # check file type
  36. #TYPE_CHECK=$(file "$FROM_FOLDER$FILE" | grep "ELF")
  37. #if [[ $TYPE_CHECK != "" ]]; then
  38. # echo "[+] ELF: $FILE"
  39. # continue
  40. #fi
  41. let COUNTER++
  42. FOLDER=$(dirname $FILE)
  43. mkdir -p "$TO_FOLDER$FOLDER"
  44. # if folder...
  45. if [[ -d "$FROM_FOLDER$FILE" ]]; then
  46. cp -R "$FROM_FOLDER$FILE" "$TO_FOLDER$FILE"
  47. else
  48. cp -P "$FROM_FOLDER$FILE" "$TO_FOLDER$FILE"
  49. fi
  50. done
  51. if [ $COUNTER -eq 0 ]; then
  52. echo "[!] No files were copied. Verify that the paths are correct."
  53. exit 1
  54. fi
  55. echo "[+] Files copied: $COUNTER"
  56. echo ""