home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 April / PCWorld_2001-04_cd.bin / Software / TemaCD / webclean / webcleaner < prev    next >
Text File  |  2001-01-14  |  3KB  |  90 lines

  1. #!/usr/bin/env python2
  2. """startup script for webcleaner proxy"""
  3. import sys
  4. if sys.version[:5] < "2.0":
  5.     raise SystemExit, "This program requires Python 2.0 or later."
  6. from webfilter import _,startfunc
  7. import WebCleanerConf
  8.  
  9. Usage = _("USAGE\twebcleaner command\n"
  10. "\n"
  11. "COMMANDS\n"
  12. "start\n"
  13. "        Start the proxy. If it is already started, do nothing.\n"
  14. "stop\n"
  15. "        Stop the proxy. If it is already stopped, do nothing.\n"
  16. "restart\n"
  17. "        Try to stop the proxy, then start it.\n"
  18. "reload\n"
  19. "        If the proxy is running read the configuration files again.\n"
  20. "        If it is not running, do nothing.\n"
  21. "status\n"
  22. "        Print info if the proxy is running or not.\n")
  23.  
  24.  
  25. def printUsage(msg):
  26.     sys.stderr.write(_("Error: %s\n") % msg)
  27.     sys.stderr.write(_("Execute 'webcleaner -h' for help\n"))
  28.     sys.exit(1)
  29.  
  30.  
  31. def paginate(text, lines=22):
  32.     """print text in pages of lines size"""
  33.     textlines = string.split(text, "\n")
  34.     curline = 1
  35.     for line in textlines:
  36.         print line
  37.         curline = curline + 1
  38.         if curline >= lines and sys.stdin.isatty():
  39.             curline = 1
  40.             print _("press return to continue...")
  41.             sys.stdin.read(1)
  42.  
  43.  
  44. def printHelp():
  45.     if os.name!='posix':
  46.         paginate(Usage)
  47.     else:
  48.         print Usage
  49.     sys.exit(0)
  50.  
  51.  
  52.  
  53. if __name__ == "__main__":
  54.     # Read command line arguments
  55.     import getopt,sys,string,os
  56.     try:
  57.         # Note: cut out the name of the script
  58.         options, args = getopt.getopt(sys.argv[1:], "h", ["help","pidfile="])
  59.     except getopt.error:
  60.         type, value = sys.exc_info()[:2]
  61.         printUsage(value)
  62.  
  63.     for opt,arg in options:
  64.         if opt=="-h" or opt=="--help":
  65.             printHelp()
  66.         else:
  67.             printUsage(_("Unknown option %s") % opt)
  68.  
  69.     if len(args) < 1: printUsage(_("No command given."))
  70.     else:
  71.         command=args[0]
  72.         if len(args) > 1:
  73.             sys.stderr.write(_("WebCleaner: warning, only first command is valid"))
  74.     # start the command
  75.     #errorlog = os.path.join(WebCleanerConf.config_dir, "error.log")
  76.     #sys.stderr = open(errorlog, "a")
  77.     from webfilter import daemon
  78.     if command=='start':
  79.         daemon.start(startfunc)
  80.     elif command=='stop':
  81.         daemon.stop()
  82.     elif command=='restart':
  83.         daemon.restart(startfunc)
  84.     elif command=='reload':
  85.         daemon.reload()
  86.     elif command=='status':
  87.         print daemon.status()
  88.     else:
  89.         printUsage(_("Unknown command %s") % command)
  90.