-#! /usr/local/bin/python -O
-"""This file is a part of XSetBg.
-Author: Oleg BroytMann <phd@phd.pp.ru>
-Copyright (C) 2004-2006 PhiloSoft Design
+#! /usr/bin/env python
+"""Print background filename
+
+Print the filename of the current or previous background image.
+
+This file is a part of XSetBg.
+
"""
-__version__ = "1.3.0"
-__author__ = "Oleg BroytMann <phd@phd.pp.ru>"
-__copyright__ = "Copyright (C) 2004-2006 PhiloSoft Design"
-__revision__ = "$Id$"[5:-2]
-__date__ = "$Date$"[7:-2]
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2004-2012 PhiloSoft Design"
+__license__ = "GNU GPL"
import sys, os, shelve
+
def usage(code=0):
- sys.stderr.write("Usage: %s [-0|--null] [-o|--old] [-w|--width] [width]\n" % sys.argv[0])
+ sys.stderr.write("Usage: %s [-o|--old]\n" % sys.argv[0])
sys.exit(code)
from getopt import getopt, GetoptError
try:
- options, arguments = getopt(sys.argv[1:], "0ow:",
- ["null", "old", "width="])
+ options, arguments = getopt(sys.argv[1:], "ho", ["help", "old"])
except GetoptError:
usage(1)
- print0 = False
old = False
- width = None
for option, value in options:
if option in ("-h", "--help"):
usage()
- elif option in ("-0", "--null"):
- print0 = True
elif option in ("-o", "--old"):
old = True
- elif option in ("-w", "--width"):
- width = int(value)
else:
usage(2)
if arguments:
- if width is not None:
- usage(3)
- elif len(arguments) > 1:
- usage(4)
- else:
- width = int(arguments[0])
+ usage(3)
- return print0, old, width
+ return old
-print0, old, width = get_args()
+old = get_args()
xsetbg_dir = os.path.join(os.environ["HOME"], "lib", "xsetbg")
filename_key = "filename"
old_filename_key = "old_filename"
+
global_db = shelve.open(global_db_name, flag='r')
if old:
key = old_filename_key
filename = global_db[key]
global_db.close()
-if width is not None:
- lines = []
- while filename:
- lines.append(filename[:width])
- filename = filename[width:]
- filename = "\n".join(lines)
+from ConfigParser import SafeConfigParser
+config = SafeConfigParser()
+config.read("xsetbg.conf")
-sys.stdout.write(filename)
+fs_encoding = config.get("images", "fs_encoding")
+filename = unicode(filename, fs_encoding)
-if print0:
- sys.stdout.write('\0')
-else:
- print
+from m_lib.defenc import default_encoding
+print filename.encode(default_encoding)