X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=print-filename.py;h=d664d79d360d32b1d92422ae79e9157ff7459db3;hb=65ff4c2e85b037a673c282b02ffa2db10c7eebd3;hp=f309386df28ff4bbec60001bfb97d24089b2d158;hpb=228fc63e8a02ef9044af27fc438119f9335bfe96;p=xsetbg.git diff --git a/print-filename.py b/print-filename.py index f309386..d664d79 100755 --- a/print-filename.py +++ b/print-filename.py @@ -1,21 +1,26 @@ -#! /usr/local/bin/python -O -"""This file is a part of XSetBg. -Author: Oleg BroytMann -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 " -__copyright__ = "Copyright (C) 2004-2006 PhiloSoft Design" -__date__ = "$Date$"[7:-2] __revision__ = "$Id$"[5:-2] +__date__ = "$Date$"[7:-2] + +__author__ = "Oleg BroytMann " +__copyright__ = "Copyright (C) 2004-2007 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 [-0|--null] [-n|--no-newline] [-o|--old] [-s|--spaces] [-w|--width] [width]\n" % sys.argv[0]) sys.exit(code) @@ -23,13 +28,15 @@ def get_args(): from getopt import getopt, GetoptError try: - options, arguments = getopt(sys.argv[1:], "0ow:", - ["null", "old", "width="]) + options, arguments = getopt(sys.argv[1:], "0nosw:", + ["null", "no-newline", "old", "spaces", "width="]) except GetoptError: usage(1) print0 = False + newline = True old = False + spaces = '' width = None for option, value in options: @@ -37,8 +44,12 @@ def get_args(): usage() elif option in ("-0", "--null"): print0 = True + elif option in ("-n", "--no-newline"): + newline = False elif option in ("-o", "--old"): old = True + elif option in ("-s", "--spaces"): + spaces = ' ' elif option in ("-w", "--width"): width = int(value) else: @@ -52,9 +63,9 @@ def get_args(): else: width = int(arguments[0]) - return print0, old, width + return print0, newline, old, spaces, width -print0, old, width = get_args() +print0, newline, old, spaces, width = get_args() xsetbg_dir = os.path.join(os.environ["HOME"], "lib", "xsetbg") @@ -64,6 +75,7 @@ global_db_name = "xsetbg.db" filename_key = "filename" old_filename_key = "old_filename" + global_db = shelve.open(global_db_name, flag='r') if old: key = old_filename_key @@ -72,16 +84,21 @@ else: filename = global_db[key] global_db.close() -if width is not None: +from m_lib.defenc import default_encoding +filename = unicode(filename, default_encoding) + +if width: lines = [] while filename: - lines.append(filename[:width]) + lines.append("%s%s%s" % (spaces, filename[:width], spaces)) filename = filename[width:] - filename = "\n".join(lines) + filename = u'\n'.join(lines) +else: + filename = u"%s%s%s" % (spaces, filename, spaces) -sys.stdout.write(filename) +sys.stdout.write(filename.encode(default_encoding)) if print0: sys.stdout.write('\0') -else: +elif newline: print