From e600c3cb471bb23792a959e885f504cd48757bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Andr=C3=A9e?= Date: Mon, 8 Oct 2012 18:58:24 +0200 Subject: [PATCH] m + ensure that change stuff always has proper permissions --- ponysay.py | 15 ++++++++++++++- setup.py | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ponysay.py b/ponysay.py index 793e31b5..85e4cbd5 100755 --- a/ponysay.py +++ b/ponysay.py @@ -804,10 +804,13 @@ class Ponysay(): ## Get and in necessary make cache directory cachedir = '/var/cache/ponysay' + shared = True if not os.path.isdir(cachedir): cachedir = HOME + '/.cache/ponysay' + shared = False if not os.path.isdir(cachedir): os.makedirs(cachedir) + _cachedir = '\'' + cachedir.replace('\'', '\'\\\'\'') + '\'' ## KMS support version control, clean everything if not matching newversion = False @@ -815,7 +818,7 @@ class Ponysay(): newversion = True else: with open(cachedir + '/.version', 'rb') as cachev: - if cachev.read().decode('utf8', 'replace').replace('\n', '') == KMS_VERSION: + if cachev.read().decode('utf8', 'replace').replace('\n', '') != KMS_VERSION: newversion = True if newversion: for cached in os.listdir(cachedir): @@ -826,6 +829,8 @@ class Ponysay(): os.remove(cached) with open(cachedir + '/.version', 'w+') as cachev: cachev.write(KMS_VERSION) + if shared: + Popen('chmod 666 -- ' + _cachedir + '/.version', shell=True).wait() ## Get kmspony directory and kmspony file kmsponies = cachedir + '/kmsponies/' + palettefile @@ -848,16 +853,24 @@ class Ponysay(): if not os.path.isfile(protokmspony): if not os.path.isdir(protokmsponydir): os.makedirs(protokmsponydir) + if shared: + Popen('chmod -R 6777 -- ' + _cachedir, shell=True).wait() if not os.system('ponysay2ttyponysay < ' + _pony + ' > ' + _protokmspony) == 0: sys.stderr.write('Unable to run ponysay2ttyponysay successfully, you need util-say for KMS support\n') exit(1) + if shared: + Popen('chmod 666 -- ' + _protokmspony, shell=True).wait() ## Create kmspony if not os.path.isdir(kmsponydir): os.makedirs(kmsponydir) + if shared: + Popen('chmod -R 6777 -- ' + _cachedir, shell=True).wait() if not os.system('tty2colourfultty -p ' + palette + ' < ' + _protokmspony + ' > ' + _kmspony) == 0: sys.stderr.write('Unable to run tty2colourfultty successfully, you need util-say for KMS support\n') exit(1) + if shared: + Popen('chmod 666 -- ' + _kmspony, shell=True).wait() return kmspony diff --git a/setup.py b/setup.py index 5cbda4be..b3f2dcad 100755 --- a/setup.py +++ b/setup.py @@ -505,9 +505,9 @@ class Setup(): print('Creating directory ' + dir) os.mkdir(dir) print('Setting permission mode mask for ' + dir + ' to 6777') - Popen('chmod -R 6777 -- ' + dir, shell=True).wait() + Popen('chmod -R 6777 -- \'' + dir.replace('\'', '\'\\\'\'') + '\'', shell=True).wait() print('Setting group for ' + dir + ' users') - Popen('chown -R :users -- ' + dir, shell=True).wait() + Popen('chown -R :users -- \'' + dir.replace('\'', '\'\\\'\'') + '\'', shell=True).wait() for shell in [item[0] for item in shells]: if conf[shell] is not None: for command in commands: