X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=xsetbg.py;h=930a65fbf4719130c1bc2de59c1b4b5fb4ef44b1;hb=52529b9239d2bad82b9b65ac3e77e2d327136aed;hp=86462dda4da085b847d3210a4a2793037e1ab892;hpb=01fe4294aae12df405acf330f42fad79e7e9099b;p=xsetbg.git diff --git a/xsetbg.py b/xsetbg.py index 86462dd..930a65f 100755 --- a/xsetbg.py +++ b/xsetbg.py @@ -27,7 +27,7 @@ def error(error_str, error_code=1): from ConfigParser import SafeConfigParser -xsetbg_dir = os.path.join(os.environ["HOME"], "lib", "xsetbg") +xsetbg_dir = os.path.dirname(os.path.abspath(__file__)) os.chdir(xsetbg_dir) config = SafeConfigParser() @@ -107,9 +107,7 @@ import anydbm, shelve from time import time from fcntl import flock, LOCK_EX, LOCK_UN, LOCK_NB -# Import pickle and all anydbm/shelve internal machinery, so that -# when ReadyExec forks they will be ready. -# Also create the database if it is not exists yet. +# Create the database if it is not exists yet. try: global_db = shelve.open(global_db_name, flag='c') @@ -194,6 +192,14 @@ def ping(force=False): global_db[old_filename_key] = global_db[filename_key] global_db[filename_key] = image_name + program_options = ["xli", "-onroot", "-quiet"] + \ + ["-center", "-border", random.choice(borders), "-zoom", "auto", + image_name] + + rc = subprocess.call(program_options) + if rc: + error("cannot execute xli!") + finally: # Unlock and close the lock file flock(lock_file, LOCK_UN) @@ -201,14 +207,6 @@ def ping(force=False): # Flush and close the global persistent dictionary if global_db: global_db.close() - program_options = ["xli", "-onroot", "-quiet"] + \ - ["-center", "-border", random.choice(borders), "-zoom", "auto", - image_name] - - rc = subprocess.call(program_options) - if rc: - error("cannot execute xli!") - @published def force(): ping(force=True) @@ -256,5 +254,6 @@ def app(env, start_response): start_response(status, response_headers) return ['Ok\n'] +force() httpd = make_server(host, port, app, server_class=QuitWSGIServer) httpd.serve_forever()