]> git.phdru.name Git - xsetbg.git/blobdiff - print-filename.py
Expand tilde in the database path
[xsetbg.git] / print-filename.py
index 81503672330deecfaa66d28d901df83d47c634dc..6348f68693cce5c2015ea4eabbef259c048ba0d1 100755 (executable)
@@ -7,16 +7,14 @@ This file is a part of XSetBg.
 
 """
 
-__version__ = "$Revision$"[11:-2]
-__revision__ = "$Id$"[5:-2]
-__date__ = "$Date$"[7:-2]
-
-__author__ = "Oleg Broytman <phd@phd.pp.ru>"
-__copyright__ = "Copyright (C) 2004-2007 PhiloSoft Design"
+__author__ = "Oleg Broytman <phd@phdru.name>"
+__copyright__ = "Copyright (C) 2004-2014 PhiloSoft Design"
 __license__ = "GNU GPL"
 
 
-import sys, os, shelve
+import sys, os
+from xsetbg_conf import xsetbg_conf
+from xsetbg_db import xsetbg_db
 
 
 def usage(code=0):
@@ -28,15 +26,19 @@ def get_args():
    from getopt import getopt, GetoptError
 
    try:
-      options, arguments = getopt(sys.argv[1:], "ho", ["help", "old"])
+      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:
@@ -45,28 +47,26 @@ def get_args():
    if arguments:
       usage(3)
 
-   return old
-
-old = get_args()
+   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()
 
-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()
 
-from m_lib.defenc import default_encoding
-filename = unicode(filename, default_encoding)
+filename = xsetbg_db[key]
+xsetbg_db.close()
+
+fs_encoding = xsetbg_conf.get("images", "fs_encoding")
+filename = unicode(filename, fs_encoding)
 
-print filename.encode(default_encoding)
+print filename.encode(output_encoding)