download.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/sh
  2. _use_backup="$2"
  3. SELF_DIR=$(cd "$(dirname "$0")";pwd)
  4. if [ ! -d "source" ]; then
  5. mkdir source
  6. fi
  7. if [ ! -d "source/cache" ]; then
  8. mkdir source/cache
  9. fi
  10. function readconf() {
  11. cat $SELF_DIR/config.json | jq $@ | sed 's/\"//g'
  12. }
  13. cd source
  14. if [ "$_use_backup" = "yes" ]; then
  15. _use_backup="_2"
  16. else
  17. _use_backup=""
  18. fi
  19. archive_find_tar=$(find cache/ -name "$1.*" | grep -E ".tgz" | tail -n1)
  20. archive_find_zip=$(find cache/ -name "$1.*" | grep -E ".zip" | tail -n1)
  21. if [ "$archive_find_tar" != "" ]; then
  22. echo "Using cache for $1 ($archive_find_tar)"
  23. tar -zxf "$archive_find_tar"
  24. elif [ "$archive_find_zip" != "" ]; then
  25. echo "Using cache for $1 ($archive_find_zip)"
  26. unzip $archive_find_zip -d "$SELF_DIR/source" > /dev/null
  27. else
  28. if [ "$3" != "" ]; then
  29. wget -q "$(readconf ".$1.link$_use_backup" | sed 's/{version}/'$3'/g')"
  30. else
  31. echo "Downloading $1"
  32. wget -q "$(readconf ".$1.link$_use_backup" | sed 's/{version}/'$(readconf ".$1.version")'/g')"
  33. fi
  34. if [ $? == 0 ]; then
  35. archive_file_tar=$(find . -name "*.*" -maxdepth 1 | grep -E ".tar|.gz|.tgz" | tail -n1)
  36. archive_file_zip=$(find . -name "*.zip" -maxdepth 1 | tail -n1)
  37. if [ "$archive_file_tar" != "" ]; then
  38. tar -zxf $archive_file_tar && mv $archive_file_tar $SELF_DIR/source/cache/$1.tgz
  39. elif [ "$archive_file_zip" != "" ]; then
  40. unzip $archive_file_zip && mv $archive_file_zip $SELF_DIR/source/cache/$1.zip > /dev/null
  41. else
  42. find . -name "*$1*.*"
  43. echo "Unable to find downloaded file, only support '.tar.gz', '.tgz', '.zip' file!"
  44. exit 1
  45. fi
  46. else
  47. echo "Download $1 failed! (at $?)"
  48. exit 1
  49. fi
  50. fi