#!/usr/bin/env python2.7 # -*- coding: UTF-8 no BOM -*- # Makes postprocessing routines acessible from everywhere. import os,sys import damask damaskEnv = damask.Environment() baseDir = damaskEnv.relPath('processing/') binDir = damaskEnv.options['DAMASK_BIN'] if not os.path.isdir(binDir): os.mkdir(binDir) #define ToDo list processing_subDirs = ['pre', 'post', 'misc', ] processing_extensions = ['.py', '.sh', ] sys.stdout.write('\nsymbolic linking...\n') for subDir in processing_subDirs: theDir = os.path.abspath(os.path.join(baseDir,subDir)) sys.stdout.write('\n'+binDir+' ->\n'+theDir+damask.util.deemph(' ...')+'\n') for theFile in os.listdir(theDir): theName,theExt = os.path.splitext(theFile) if theExt in processing_extensions: # only consider files with proper extensions src = os.path.abspath(os.path.join(theDir,theFile)) sym_link = os.path.abspath(os.path.join(binDir,theName)) if os.path.lexists(sym_link): os.remove(sym_link) output = theName+damask.util.deemph(theExt) else: output = damask.util.emph(theName)+damask.util.deemph(theExt) sys.stdout.write(damask.util.deemph('... ')+output+'\n') os.symlink(src,sym_link) sys.stdout.write('\npruning broken links...\n') brokenLinks = 0 for filename in os.listdir(binDir): path = os.path.join(binDir,filename) if os.path.islink(path) and not os.path.exists(path): sys.stdout.write(' '+damask.util.delete(path)+'\n') os.remove(path) brokenLinks += 1 sys.stdout.write(('none.' if brokenLinks == 0 else '')+'\n')