diff options
author | Didier Raboud <odyx@debian.org> | 2016-01-04 16:45:25 +0100 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2016-01-04 16:45:25 +0100 |
commit | bfdf57b19d6d77d62d062df9872a06064c4fc468 (patch) | |
tree | ec226a7327dee095f7ddc77c8812d7fa9997df11 /timedate.py | |
parent | 9e61c3c0f74d2e88ddacf5a802227bdd0eafd522 (diff) |
Imported Upstream version 2.8.4
Diffstat (limited to 'timedate.py')
-rwxr-xr-x | timedate.py | 198 |
1 files changed, 106 insertions, 92 deletions
diff --git a/timedate.py b/timedate.py index c0084d82e..bfb233c28 100755 --- a/timedate.py +++ b/timedate.py @@ -20,7 +20,7 @@ # Author: Don Welch # -__version__ = '0.2' +__version__ = '1.0' __title__ = 'Time/Date Utility' __doc__ = "Set the time and date on an HP Officejet." @@ -30,13 +30,20 @@ import re import getopt import struct import operator +import os # Local from base.g import * from base.codes import * from base import device, status, utils, pml from prnt import cups -from fax import faxdevice + +try: + from fax import faxdevice +except ImportError: + log.error("Unable to load fax services for HPLIP (required for hp-timedate). Exiting.") + sys.exit(1) + USAGE = [(__doc__, "", "name", True), ("Usage: timedate.py [PRINTER|DEVICE-URI] [OPTIONS]", "", "summary", True), @@ -76,120 +83,127 @@ PML_ERROR_CODES = { } - try: - opts, args = getopt.getopt(sys.argv[1:], - 'p:d:hl:b:g', - ['printer=', - 'device=', - 'help', - 'help-rest', - 'help-man', - 'help-desc', - 'logging=', - 'bus=', - ] - ) -except getopt.GetoptError, e: - log.error(e.msg) - usage() - -printer_name = None -device_uri = None -bus = device.DEFAULT_PROBE_BUS -log_level = logger.DEFAULT_LOG_LEVEL - -if os.getenv("HPLIP_DEBUG"): - log.set_level('debug') - -for o, a in opts: - if o in ('-h', '--help'): + + try: + opts, args = getopt.getopt(sys.argv[1:], + 'p:d:hl:b:g', + ['printer=', + 'device=', + 'help', + 'help-rest', + 'help-man', + 'help-desc', + 'logging=', + 'bus=', + ] + ) + except getopt.GetoptError, e: + log.error(e.msg) usage() - elif o == '--help-rest': - usage('rest') + printer_name = None + device_uri = None + bus = device.DEFAULT_PROBE_BUS + log_level = logger.DEFAULT_LOG_LEVEL + + if os.getenv("HPLIP_DEBUG"): + log.set_level('debug') - elif o == '--help-man': - usage('man') + for o, a in opts: + if o in ('-h', '--help'): - elif o == '--help-desc': - print __doc__, - sys.exit(0) + usage() - elif o in ('-p', '--printer'): - if a.startswith('*'): - printer_name = cups.getDefaultPrinter() - else: - printer_name = a + elif o == '--help-rest': + usage('rest') - elif o in ('-d', '--device'): - device_uri = a + elif o == '--help-man': + usage('man') - elif o in ('-b', '--bus'): - bus = a.lower().strip() - if not device.validateBusList(bus): - usage() + elif o == '--help-desc': + print __doc__, + sys.exit(0) - elif o in ('-l', '--logging'): - log_level = a.lower().strip() - if not log.set_level(log_level): - usage() + elif o in ('-p', '--printer'): + if a.startswith('*'): + printer_name = cups.getDefault() + else: + printer_name = a - elif o == '-g': - log.set_level('debug') + elif o in ('-d', '--device'): + device_uri = a + + elif o in ('-b', '--bus'): + bus = [x.lower().strip() for x in a.split(',')] + if not device.validateBusList(bus): + usage() + + elif o in ('-l', '--logging'): + log_level = a.lower().strip() + if not log.set_level(log_level): + usage() - elif o in ('-v', '--value'): - print a + elif o == '-g': + log.set_level('debug') + elif o in ('-v', '--value'): + print a -if device_uri and printer_name: - log.error("You may not specify both a printer (-p) and a device (-d).") - usage() + if device_uri and printer_name: + log.error("You may not specify both a printer (-p) and a device (-d).") + usage() + + utils.log_title(__title__, __version__) + + if os.getuid() == 0: + log.error("hp-timedate should not be run as root.") -utils.log_title(__title__, __version__) + if not device_uri and not printer_name: + try: + device_uri = device.getInteractiveDeviceURI(bus, filter={'fax-type' : (operator.gt, 0)}) + if device_uri is None: + sys.exit(1) + except Error: + log.error("Error occured during interactive mode. Exiting.") + sys.exit(0) -if not device_uri and not printer_name: try: - device_uri = device.getInteractiveDeviceURI(bus, filter={'fax-type' : (operator.gt, 0)}) - if device_uri is None: + d = faxdevice.FaxDevice(device_uri, printer_name) + except Error, e: + if e.opt == ERROR_DEVICE_DOES_NOT_SUPPORT_OPERATION: + log.error("Device does not support setting time/date.") + sys.exit(1) + else: + log.error(e.msg) sys.exit(1) - except Error: - log.error("Error occured during interactive mode. Exiting.") - sys.exit(0) -try: - d = faxdevice.FaxDevice(device_uri, printer_name) -except Error, e: - if e.opt == ERROR_DEVICE_DOES_NOT_SUPPORT_OPERATION: - log.error("Device does not support setting time/date.") - sys.exit(1) - else: - log.error(e.msg) + if d.device_uri is None and printer_name: + log.error("Printer '%s' not found." % printer_name) sys.exit(1) -if d.device_uri is None and printer_name: - log.error("Printer '%s' not found." % printer_name) - sys.exit(1) - -if d.device_uri is None and device_uri: - log.error("Malformed/invalid device-uri: %s" % device_uri) - sys.exit(1) + if d.device_uri is None and device_uri: + log.error("Malformed/invalid device-uri: %s" % device_uri) + sys.exit(1) -user_cfg.last_used.device_uri = d.device_uri + user_cfg.last_used.device_uri = d.device_uri -try: - d.open() -except Error: - log.error("Unable to open device. Exiting. ") - sys.exit(1) + try: + try: + d.open() + except Error: + log.error("Unable to open device. Exiting. ") + sys.exit(1) -try: - d.setDateAndTime() -except Error: - log.error("An error occured!") + try: + d.setDateAndTime() + except Error: + log.error("An error occured!") + finally: + d.close() +except KeyboardInterrupt: + log.error("User exit") log.info("") -d.close() log.info('Done.') -sys.exit(0) |