💾 Archived View for gmi.noulin.net › gitRepositories › easydoneit-cli › file › edi_common.py.gmi captured on 2023-01-29 at 13:24:24. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

easydoneit-cli

Log

Files

Refs

README

LICENSE

edi_common.py (2894B)

     1 #!/usr/local/util/bin/python                                                                                                 
     2 #
     3 ## @package edi_common
     4 # Common data and functions for Easydoneit CLI.
     5 # python style<br>
     6 # basic functions that can be reused outside easydoneit<br>
     7 #
     8 # Copyright (C) 2014 Spartatek AB
     9 #
    10 # contact@spartatek.se
    11 # http://spartatek.se
    12 #
    13 # EASYDONEIT CLI is free software: you can redistribute it and/or modify
    14 # it under the terms of the GNU Genereric Public License as published by
    15 # the Free Software Foundation, either version 3 of the License, or
    16 # (at your option) any later version.
    17 #
    18 # EASYDONIT CLI is distributed in the hope that it will be usesul,
    19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
    20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    21 # GNU Genereral Public License for more details.
    22 #
    23 # You should have received a copy of the GNU General Public License
    24 # along with this program. If not, see
    25 # GNU licences http://www.gnu.org/licenses
    26 
    27 import os
    28 import logging
    29 
    30 #==========================================================================
    31 # Setup logger
    32 #==========================================================================
    33 if __name__ == '__main__':
    34   console = logging.StreamHandler() #pragma: no cover
    35   formatter = logging.Formatter('%(levelname)-8s (%(name)s) %(message)s') #pragma: no cover
    36   console.setFormatter(formatter) #pragma: no cover
    37   console.setLevel(logging.INFO) #pragma: no cover
    38   logging.getLogger('').addHandler(console) #pragma: no cover
    39 logger = logging.getLogger(os.path.basename(__file__))
    40 logger.setLevel(logging.INFO);
    41 #==========================================================================
    42 # Logger has been set up
    43 #==========================================================================
    44 
    45 
    46 
    47 #==========================================================================
    48 
    49 ## Find all files in tree path.
    50 # @return list of paths for files
    51 # @param[in] path to tree
    52 # @ingroup EDI_CORE
    53 def ffind(path, namefs=None, relative=True):
    54     """
    55     Finds files in the directory tree starting at 'path' (filtered by the
    56     functions in the optional 'namefs' sequence); if the 'relative'
    57     flag is not set, the result sequence will contain absolute paths.                                                        
    58 
    59     Returns a sequence of paths for files found.
    60     """
    61     if not os.access(path, os.R_OK):
    62         logger.error("cannot access path: '%s'" % path) #pragma: no cover
    63 
    64     fileList = []
    65     try:
    66         for dir, subdirs, files in os.walk(path):
    67             fileList.extend(['%s%s%s' % (dir, os.sep, f) for f in files])
    68         if not relative: fileList = map(os.path.abspath, fileList)
    69         if namefs: 
    70             for ff in namefs: fileList = filter(ff, fileList) #pragma: no cover
    71     except Exception, e: logger.error(str(e)) #pragma: no cover
    72     return(fileList)