v-add-user-package 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/bin/bash
  2. # info: adding user package
  3. # options: PKG_DIR PACKAGE [REWRITE]
  4. #
  5. # The function adds new user package to the system.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. pkg_dir=$1
  11. package=$2
  12. rewrite=$3
  13. # Includes
  14. source $VESTA/func/main.sh
  15. source $VESTA/conf/vesta.conf
  16. # Functions
  17. is_package_new() {
  18. if [ -e "$VESTA/data/packages/$package.pkg" ]; then
  19. echo "Error: package $package already exists."
  20. log_event "$E_EXISTS" "$ARGUMENTS"
  21. exit $E_EXISTS
  22. fi
  23. }
  24. is_package_consistent() {
  25. source $pkg_dir/$package.pkg
  26. if [ "$WEB_DOMAINS" != 'unlimited' ]; then
  27. is_int_format_valid $WEB_DOMAINS 'WEB_DOMAINS'
  28. fi
  29. if [ "$WEB_ALIASES" != 'unlimited' ]; then
  30. is_int_format_valid $WEB_ALIASES 'WEB_ALIASES'
  31. fi
  32. if [ "$DNS_DOMAINS" != 'unlimited' ]; then
  33. is_int_format_valid $DNS_DOMAINS 'DNS_DOMAINS'
  34. fi
  35. if [ "$DNS_RECORDS" != 'unlimited' ]; then
  36. is_int_format_valid $DNS_RECORDS 'DNS_RECORDS'
  37. fi
  38. if [ "$MAIL_DOMAINS" != 'unlimited' ]; then
  39. is_int_format_valid $MAIL_DOMAINS 'MAIL_DOMAINS'
  40. fi
  41. if [ "$MAIL_ACCOUNTS" != 'unlimited' ]; then
  42. is_int_format_valid $MAIL_ACCOUNTS 'MAIL_ACCOUNTS'
  43. fi
  44. if [ "$DATABASES" != 'unlimited' ]; then
  45. is_int_format_valid $DATABASES 'DATABASES'
  46. fi
  47. if [ "$CRON_JOBS" != 'unlimited' ]; then
  48. is_int_format_valid $CRON_JOBS 'CRON_JOBS'
  49. fi
  50. if [ "$DISK_QUOTA" != 'unlimited' ]; then
  51. is_int_format_valid $DISK_QUOTA 'DISK_QUOTA'
  52. fi
  53. if [ "$BANDWIDTH" != 'unlimited' ]; then
  54. is_int_format_valid $BANDWIDTH 'BANDWIDTH'
  55. fi
  56. if [ "$BACKUPS" != 'unlimited' ]; then
  57. is_int_format_valid $BACKUPS 'BACKUPS'
  58. fi
  59. is_format_valid_shell $SHELL
  60. }
  61. #----------------------------------------------------------#
  62. # Verifications #
  63. #----------------------------------------------------------#
  64. check_args '2' "$#" 'PKG_DIR PACKAGE' 'rewrite'
  65. is_format_valid 'pkg_dir' 'package'
  66. if [ "$rewrite" != 'yes' ]; then
  67. is_package_new
  68. fi
  69. is_package_valid "$pkg_dir"
  70. is_package_consistent
  71. #----------------------------------------------------------#
  72. # Action #
  73. #----------------------------------------------------------#
  74. cp -f $pkg_dir/$package.pkg $VESTA/data/packages/
  75. chmod 644 $VESTA/data/packages/$package.pkg
  76. #----------------------------------------------------------#
  77. # Vesta #
  78. #----------------------------------------------------------#
  79. # Logging
  80. if [ "$rewrite" != 'yes' ]; then
  81. log_history "added user package $package" '' 'admin'
  82. else
  83. log_history "updated user package $package" '' 'admin'
  84. fi
  85. log_event "$OK" "$ARGUMENTS"
  86. exit