copier.sh 1.9 KB

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