Source code for core.utils.file
# core/utils.py
#
#
""" utils package. """
__copyright__ = "Copyright 2015, B.H.J Thate"
## IMPORT
import logging
import glob
import os
## DEFINES
dirmask = 0o700
filemask = 0o600
## FILES
[docs]def list_files(*args, **kwargs):
path = args[0]
res = []
if not path.endswith(os.sep): path += os.sep
if len(args) > 1: path += args[1]
if "*" not in path: path += "*"
for fnn in glob.glob(path):
if os.path.isdir(fnn): res.extend(list_files(fnn)) ; continue
else: res.append(fnn)
return res
[docs]def touch(fname):
logging.warn("# touch %s" % fname)
try: fd = os.open(fname, os.O_RDONLY | os.O_CREAT) ; os.close(fd)
except: error()
[docs]def check_permissions(ddir, dirmask=dirmask, filemask=filemask):
uid = os.getuid()
gid = os.getgid()
try: stat = os.stat(ddir)
except OSError: cdir(ddir) ; stat = os.stat(ddir)
if stat.st_uid != uid: os.chown(ddir, uid, gid)
if os.path.isfile(ddir): mask = filemask
else: mask = dirmask
if stat.st_mode != mask: os.chmod(ddir, mask)
[docs]def cdir(path):
res = ""
for p in path.split(os.sep):
res += "%s%s" % (p, os.sep)
padje = os.path.abspath(os.path.normpath(res))
if os.path.isdir(padje): continue
try: os.mkdir(padje)
except FileExistsError: pass
except OSError: error()
return True
## HIGHEST
[docs]def high(target, file_name):
""" determine new file extension. """
highest = 0
for i in os.listdir(target):
if file_name in i:
try: seqnr = i.split('.')[-1]
except IndexError: continue
try:
if int(seqnr) > highest: highest = int(seqnr)
except ValueError: pass
return highest
[docs]def highest(target, filename):
""" determine new file extension. """
nr = high(target, filename)
return "%s.%s" % (filename, nr+1)