aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2012-10-08 18:58:24 +0200
committerMattias Andrée <maandree@operamail.com>2012-10-08 18:58:24 +0200
commite600c3cb471bb23792a959e885f504cd48757bb5 (patch)
tree1b9172f695c1850c55b43d01079d2f4dba43c584
parent21eb7358f2cacd339e3670cad080608524510a63 (diff)
downloadponysay-e600c3cb471bb23792a959e885f504cd48757bb5.tar.gz
ponysay-e600c3cb471bb23792a959e885f504cd48757bb5.tar.bz2
ponysay-e600c3cb471bb23792a959e885f504cd48757bb5.zip
m + ensure that change stuff always has proper permissions
-rwxr-xr-xponysay.py15
-rwxr-xr-xsetup.py4
2 files changed, 16 insertions, 3 deletions
diff --git a/ponysay.py b/ponysay.py
index 793e31b..85e4cbd 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 5cbda4b..b3f2dca 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: