summaryrefslogtreecommitdiff
path: root/webuser
blob: 83f6c06ca7690f4baf35a743457ca92100bd1370 (plain)
  1. #!/bin/bash
  2. set -e
  3. ACTION=$1
  4. USER=$2
  5. WEBSITE=$3
  6. USERROOT=/home
  7. WEBROOT=/var/www
  8. LOGROOT=/var/log/apache
  9. WEBALIZER_OPTIONS="-q"
  10. function webdir() { echo $1/VIRTUAL/$2; }
  11. function userwebdir() { echo $1/$2/web_$3; }
  12. #function logdir() { echo ${LOGROOT}/${WEBSITE}; }
  13. #function logfiles() { $(ls -r $LOGDIR/*-access*.gz) $(ls -r $LOGDIR/access*.??.gz) $(ls -r $LOGDIR/access*.?.gz) $(ls -r $LOGDIR/access*.?); }
  14. function logfiles() { ls $1/$2/????.??.??; }
  15. function host() { cat $1/VIRTUAL/$2/hostname || exit 1; }
  16. function domain() { cat $1/VIRTUAL/$2/domainname || exit 1; }
  17. function thishost() { cat /etc/mailhost; }
  18. # The above can be overridden in /etc/local/www
  19. . /etc/local/www || exit 1
  20. function apache_virtualhost() {
  21. echo "\
  22. <VirtualHost $WEBSITE>
  23. ServerName $WEBSITE
  24. ServerAdmin $USER@$(thishost)
  25. DocumentRoot $(userwebdir ${USERROOT} ${USERID} ${WEBSITE})
  26. user $USER
  27. group $USER
  28. </VirtualHost>
  29. " > /etc/apache/virtual/$WEBSITE
  30. }
  31. test "x$WEBSITE" = "x" && $ACTION=""
  32. case "$ACTION" in
  33. add)
  34. echo "Adding web user $USER: "
  35. adduser $USER || exit 1
  36. mkdir $(userwebdir ${USERROOT} ${USERID} ${WEBSITE})
  37. user-init $USER
  38. $(apache_virtualhost)
  39. ;;
  40. attach)
  41. echo "Attaching website to existing user $USER: "
  42. mkdir $(userwebdir ${USERROOT} ${USERID} ${WEBSITE})
  43. user-init $USER
  44. $(apache_virtualhost)
  45. ;;
  46. *)
  47. echo "Usage:"
  48. echo "Adding a new user:"
  49. echo " $(basename $0) add <user> <www.domain.com>"
  50. echo
  51. echo "Attaching a website to an existing user:"
  52. echo " $(basename $0) attach <user> <www.domain.com>"
  53. exit 1
  54. ;;
  55. esac
  56. exit 0