summaryrefslogtreecommitdiff
path: root/timedate.py
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2016-01-04 16:45:25 +0100
committerDidier Raboud <odyx@debian.org>2016-01-04 16:45:25 +0100
commitbfdf57b19d6d77d62d062df9872a06064c4fc468 (patch)
treeec226a7327dee095f7ddc77c8812d7fa9997df11 /timedate.py
parent9e61c3c0f74d2e88ddacf5a802227bdd0eafd522 (diff)
Imported Upstream version 2.8.4
Diffstat (limited to 'timedate.py')
-rwxr-xr-xtimedate.py198
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)