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)