X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=print-filename.py;h=676aed241a61f27339d011788d0bd5d7491f0ec3;hb=5be27ee9d6b805200db0295a9426d22159336cbe;hp=6348f68693cce5c2015ea4eabbef259c048ba0d1;hpb=a337e26c169baecb75197b50db5fd734c39f6187;p=xsetbg.git diff --git a/print-filename.py b/print-filename.py index 6348f68..676aed2 100755 --- a/print-filename.py +++ b/print-filename.py @@ -7,66 +7,55 @@ This file is a part of XSetBg. """ -__author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2004-2014 PhiloSoft Design" -__license__ = "GNU GPL" - - -import sys, os -from xsetbg_conf import xsetbg_conf +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 [index]\n" % sys.argv[0]) + sys.exit(code) def get_args(): - from getopt import getopt, GetoptError - - try: - options, arguments = getopt(sys.argv[1:], "he:o", - ["help", "output-encoding=", "old"]) - except GetoptError: - usage(1) - - old = False - output_encoding = None - - 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) - - if output_encoding is None: - from m_lib.defenc import default_encoding - output_encoding = default_encoding - return old, output_encoding - -old, output_encoding = get_args() - - -filename_key = "filename" -old_filename_key = "old_filename" - -if old: - key = old_filename_key -else: - key = filename_key - -filename = xsetbg_db[key] -xsetbg_db.close() - -fs_encoding = xsetbg_conf.get("images", "fs_encoding") -filename = unicode(filename, fs_encoding) + from getopt import getopt, GetoptError + + try: + options, arguments = getopt(sys.argv[1:], "he:", + ["help", "output-encoding="]) + except GetoptError: + usage(1) + + index = 0 + output_encoding = None + + for option, value in options: + if option in ("-h", "--help"): + usage() + elif option in ("-e", "--output-encoding"): + output_encoding = value + else: + usage(2) + + if arguments: + if len(arguments) == 1: + try: + index = int(arguments[0]) + except ValueError: + usage(3) + else: + usage(4) + + if output_encoding is None: + from m_lib.defenc import default_encoding + output_encoding = default_encoding + return index, output_encoding + +index, output_encoding = get_args() + +filename = xsetbg_db.select('last_shown IS NOT NULL', + orderBy='-last_shown')[index].full_name print filename.encode(output_encoding)