patch.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env bash
  2. set -e
  3. echo "$#"
  4. cd vscode || { echo "'vscode' dir not found"; exit 1; }
  5. git add .
  6. git reset -q --hard HEAD
  7. while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
  8. git reset -q --hard HEAD~
  9. done
  10. if [[ "${1}" == *patch ]]; then
  11. FILE="../patches/${1}"
  12. else
  13. FILE="../patches/${1}.patch"
  14. fi
  15. if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
  16. git apply --reject "../patches/helper/settings.patch"
  17. while [ $# -gt 1 ]; do
  18. echo "Parameter: $1"
  19. if [[ "${1}" == *patch ]]; then
  20. FILE="../patches/${1}"
  21. else
  22. FILE="../patches/${1}.patch"
  23. fi
  24. git apply --reject "${FILE}"
  25. shift
  26. done
  27. git add .
  28. git commit --no-verify -q -m "VSCODIUM HELPER"
  29. if [[ "${1}" == *patch ]]; then
  30. FILE="../patches/${1}"
  31. else
  32. FILE="../patches/${1}.patch"
  33. fi
  34. fi
  35. if [[ -f "${FILE}" ]]; then
  36. if [[ -f "${FILE}.bak" ]]; then
  37. mv -f $FILE{.bak,}
  38. fi
  39. git apply --reject "${FILE}" || true
  40. fi
  41. read -rp "Press any key when the conflict have been resolved..." -n1 -s
  42. while [[ -n "$( find . -name '*.rej' -print )" ]]; do
  43. echo
  44. read -rp "Press any key when the conflict have been resolved..." -n1 -s
  45. done
  46. git add .
  47. git diff --staged -U1 > "${FILE}"
  48. if [[ "${FILE}" != "../patches/helper/settings.patch" ]]; then
  49. git reset -q --hard HEAD
  50. else
  51. git reset -q --hard HEAD~
  52. fi
  53. echo "The patch has been generated."