-#! /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__ = "$Revision$"[11:-2]
-__author__ = "Oleg BroytMann <phd@phd.pp.ru>"
-__copyright__ = "Copyright (C) 2004-2006 PhiloSoft Design"
-__date__ = "$Date$"[7:-2]
-__revision__ = "$Id$"[5:-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] [-s|--spaces] [-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:], "0osw:",
- ["null", "old", "spaces", "width="])
+ options, arguments = getopt(sys.argv[1:], "he:o",
+ ["help", "output-encoding=", "old"])
except GetoptError:
usage(1)
- print0 = False
old = False
- spaces = ''
- width = None
+ output_encoding = None
for option, value in options:
if option in ("-h", "--help"):
usage()
- elif option in ("-0", "--null"):
- print0 = True
+ elif option in ("-e", "--output-encoding"):
+ output_encoding = value
elif option in ("-o", "--old"):
old = True
- elif option in ("-s", "--spaces"):
- spaces = ' '
- 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, spaces, width
+ if output_encoding is None:
+ from m_lib.defenc import default_encoding
+ output_encoding = default_encoding
+ return old, output_encoding
-print0, old, spaces, width = get_args()
+old, output_encoding = get_args()
xsetbg_dir = os.path.join(os.environ["HOME"], "lib", "xsetbg")
filename = global_db[key]
global_db.close()
+from ConfigParser import SafeConfigParser
+config = SafeConfigParser()
+config.read("xsetbg.conf")
-if width:
- lines = []
- while filename:
- lines.append("%s%s%s" % (spaces, filename[:width], spaces))
- filename = filename[width:]
- filename = "\n".join(lines)
-else:
- filename = "%s%s%s" % (spaces, filename, spaces)
-
+fs_encoding = config.get("images", "fs_encoding")
+filename = unicode(filename, fs_encoding)
-sys.stdout.write(filename)
-
-if print0:
- sys.stdout.write('\0')
-else:
- print
+print filename.encode(output_encoding)