"""
-__version__ = "$Revision$"[11:-2]
-__revision__ = "$Id$"[5:-2]
-__date__ = "$Date$"[7:-2]
-
-__author__ = "Oleg BroytMann <phd@phd.pp.ru>"
-__copyright__ = "Copyright (C) 2004-2007 PhiloSoft Design"
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2004-2015 PhiloSoft Design"
__license__ = "GNU GPL"
-import sys, os, shelve
+import sys
+from xsetbg_db import xsetbg_db
+
+if not xsetbg_db:
+ sys.exit("Error: no database found")
def usage(code=0):
- sys.stderr.write("Usage: %s [-o|--old]\n" % sys.argv[0])
- sys.exit(code)
+ sys.stderr.write("Usage: %s [-o|--old]\n" % sys.argv[0])
+ sys.exit(code)
def get_args():
- from getopt import getopt, GetoptError
-
- try:
- options, arguments = getopt(sys.argv[1:], "ho", ["help", "old"])
- except GetoptError:
- usage(1)
-
- old = False
-
- for option, value in options:
- if option in ("-h", "--help"):
- usage()
- elif option in ("-o", "--old"):
- old = True
- else:
- usage(2)
+ from getopt import getopt, GetoptError
- if arguments:
- usage(3)
+ try:
+ options, arguments = getopt(sys.argv[1:], "he:o",
+ ["help", "output-encoding=", "old"])
+ except GetoptError:
+ usage(1)
- return old
+ old = False
+ output_encoding = None
-old = get_args()
+ for option, value in options:
+ if option in ("-h", "--help"):
+ usage()
+ elif option in ("-e", "--output-encoding"):
+ output_encoding = value
+ elif option in ("-o", "--old"):
+ old = True
+ else:
+ usage(2)
+ if arguments:
+ usage(3)
-xsetbg_dir = os.path.join(os.environ["HOME"], "lib", "xsetbg")
-os.chdir(xsetbg_dir)
+ if output_encoding is None:
+ from m_lib.defenc import default_encoding
+ output_encoding = default_encoding
+ return old, output_encoding
-global_db_name = "xsetbg.db"
-filename_key = "filename"
-old_filename_key = "old_filename"
+old, output_encoding = get_args()
-global_db = shelve.open(global_db_name, flag='r')
if old:
- key = old_filename_key
+ index = 1
else:
- key = filename_key
-filename = global_db[key]
-global_db.close()
+ index = 0
-from m_lib.defenc import default_encoding
-filename = unicode(filename, default_encoding)
+filename = xsetbg_db.select('last_shown IS NOT NULL',
+ orderBy='-last_shown')[index].full_name
-print filename.encode(default_encoding)
+print filename.encode(output_encoding)