install.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/env bash
  2. dyfi_dir=$(dirname "$(realpath "$0")")
  3. install_dir='/opt/dyfi/'
  4. copy_service_script=':';
  5. print_cmd=false;
  6. for arg in $*; do
  7. case $arg in
  8. '--openrc')
  9. copy_service_script='cp ./dyfi-openrc.sh /etc/init.d/dyfi'
  10. ;;
  11. '--print-cmd')
  12. print_cmd=true
  13. ;;
  14. esac
  15. done
  16. cmd=''
  17. read -r -d '' cmd <<-CMD
  18. set -e;
  19. alias 'cp'='cp --verbose';
  20. alias 'mkdir'='mkdir --verbose';
  21. cd "$dyfi_dir";
  22. mkdir -p /opt/dyfi;
  23. cp ./auth "$install_dir";
  24. cp ./dyfi.py "$install_dir";
  25. cp ./run.sh "$install_dir";
  26. cp ./requirements.txt "$install_dir";
  27. "$copy_service_script";
  28. cd "$install_dir";
  29. python -m venv ./venv;
  30. . ./venv/bin/activate;
  31. python -m ensurepip;
  32. pip install --upgrade pip;
  33. pip install -r ./requirements.txt;
  34. ln -sf "$install_dir"/run.sh /usr/bin/dyfi
  35. CMD
  36. if [ $print_cmd == true ]; then
  37. echo "$cmd"
  38. else
  39. sudo -- env bash -e -c "$cmd"
  40. if [ $? != 0 ]; then
  41. ./uninstall.sh
  42. echo ''
  43. echo "Installation failed"
  44. fi
  45. echo ''
  46. echo "Dyfi installed to "$install_dir""
  47. fi