X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=print-filename.py;h=6348f68693cce5c2015ea4eabbef259c048ba0d1;hb=666424147b909d29d979d45990aa967e117f6cec;hp=2712ec10ffaa546b1d3938f51ee6a48798c3f04d;hpb=52bbc04408504708b97dcde0411859acc7882c98;p=xsetbg.git diff --git a/print-filename.py b/print-filename.py index 2712ec1..6348f68 100755 --- a/print-filename.py +++ b/print-filename.py @@ -1,19 +1,24 @@ -#! /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] +__author__ = "Oleg Broytman " +__copyright__ = "Copyright (C) 2004-2014 PhiloSoft Design" +__license__ = "GNU GPL" + + +import sys, os +from xsetbg_conf import xsetbg_conf +from xsetbg_db import xsetbg_db -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) @@ -21,65 +26,47 @@ 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:], "he:o", + ["help", "output-encoding=", "old"]) except GetoptError: usage(1) - print0 = False old = False - 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 ("-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 + if output_encoding is None: + from m_lib.defenc import default_encoding + output_encoding = default_encoding + return old, output_encoding -print0, old, width = get_args() +old, output_encoding = get_args() -xsetbg_dir = os.path.join(os.environ["HOME"], "lib", "xsetbg") -os.chdir(xsetbg_dir) - -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 else: key = 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) +filename = xsetbg_db[key] +xsetbg_db.close() -sys.stdout.write(filename) +fs_encoding = xsetbg_conf.get("images", "fs_encoding") +filename = unicode(filename, fs_encoding) -if print0: - sys.stdout.write('\0') -else: - print +print filename.encode(output_encoding)