Newer
Older
Digital_Repository / OARiNZ / DIY / webmin-oarinz / webmin-oarinz-1.340 / debian / preinst
nstanger on 20 Jun 2007 1 KB - First working version.
  1. #!/bin/sh
  2. # preinst script for webmin-oarinz
  3.  
  4. perl <<EOD;
  5. # maketemp.pl
  6. # Create the /tmp/.webmin directory if needed
  7.  
  8. \$tmp_dir = \$ENV{'tempdir'} || "/tmp/.webmin";
  9.  
  10. while(\$tries++ < 10) {
  11. local @st = lstat(\$tmp_dir);
  12. exit(0) if (\$st[4] == \$< && (-d _) && (\$st[2] & 0777) == 0755);
  13. if (@st) {
  14. unlink(\$tmp_dir) || rmdir(\$tmp_dir) ||
  15. system("/bin/rm -rf ".quotemeta(\$tmp_dir));
  16. }
  17. mkdir(\$tmp_dir, 0755) || next;
  18. chown(\$<, \$(, \$tmp_dir);
  19. chmod(0755, \$tmp_dir);
  20. }
  21. exit(1);
  22.  
  23. EOD
  24. if [ "$1" != "upgrade" ]; then
  25. if [ "$WEBMIN_PORT" != "" ]; then
  26. port=$WEBMIN_PORT
  27. else
  28. port=10000
  29. fi
  30. perl -e 'use Socket; socket(FOO, PF_INET, SOCK_STREAM, getprotobyname("tcp")); setsockopt(FOO, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)); bind(FOO, pack_sockaddr_in($ARGV[0], INADDR_ANY)) || exit(1); exit(0);' $port
  31. if [ "$?" != "0" ]; then
  32. echo Port $port is already in use
  33. exit 2
  34. fi
  35. fi
  36.  
  37. # dh_installdeb will replace this with shell code automatically
  38. # generated by other debhelper scripts.
  39.  
  40. #DEBHELPER#
  41.  
  42. exit 0