
post_install() {
  #create user and group
  getent group "redmine" &>/dev/null || groupadd -r -g 155 redmine 1>/dev/null
  getent passwd "redmine" &>/dev/null || useradd -r -u 155 -g redmine -d "/srv/http/redmine" -s "/bin/bash" redmine 1>/dev/null
  chown -R redmine:redmine "/srv/http/redmine" 1>/dev/null
  
  #change owner
  for dir in /srv/http/redmine/{files,log,tmp,public/plugin_assets}; do
    chown -R redmine:redmine "$dir" 1>/dev/null
    chmod -R 755 "$dir" 1>/dev/null
  done 
  
  #generate session secret
  cd /srv/http/redmine/
	ln -s /var/log/redmine log
	touch log/production.log
	touch log/start.log
	chown redmine:redmine log -R
	chmod 755 log -R

  rake generate_session_store 1>/dev/null
  
  echo "==> redmine: Create a config under /srv/http/redmine/config/database.yml (Example: /srv/http/redmine/config/database.yml.example) and follow steps 2,3,5,6,9 on http://www.redmine.org/wiki/redmine/RedmineInstall before using Redmine"
}

post_upgrade() {
  #stop the server daemon
  /etc/rc.d/redmine stop 1>/dev/null
  
  #change owner
  for dir in /srv/http/redmine/{files,log,tmp,public/plugin_assets}; do
    chown -R redmine:redmine "$dir" 1>/dev/null
    chmod -R 755 "$dir" 1>/dev/null
  done 
  
  #generate session secret
  cd /srv/http/redmine/
  rake generate_session_store 1>/dev/null 
  
  #migrate the database
  rake db:migrate RAILS_ENV=production 1>/dev/null
  
  #migrate plugins
  rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production 1>/dev/null
  rake db:migrate_plugins RAILS_ENV=production 1>/dev/null

  #clean the cache and sessions
  rake tmp:cache:clear 1>/dev/null
  rake tmp:sessions:clear 1>/dev/null
  
  echo "==> redmine: Create a config under /srv/http/redmine/config/database.yml (Example: /srv/http/redmine/config/database.yml.example) and follow steps 2,3,5,6,9 on http://www.redmine.org/wiki/redmine/RedmineInstall before using Redmine"
}

post_remove() {
  getent passwd "redmine" &>/dev/null && userdel redmine 1>/dev/null
  getent group "redmine" &>/dev/null && groupdel redmine 1>/dev/null
  return 0
}


# vim:set ts=2 sw=2 et:
