Include module for desktop build
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os, re
|
||||
|
||||
def lineify_fileobjs(ifo, ofo, strip=False):
|
||||
from pyutil.strutil import pop_trailing_newlines, split_on_newlines
|
||||
for l in ifo:
|
||||
for sl in split_on_newlines(pop_trailing_newlines(l)):
|
||||
if strip:
|
||||
sl = sl.strip()
|
||||
ofo.write(pop_trailing_newlines(sl) + '\n')
|
||||
|
||||
def lineify_file(fname, strip=False, nobak=True):
|
||||
f = open(fname, "rU")
|
||||
from pyutil.fileutil import ReopenableNamedTemporaryFile
|
||||
rntf = ReopenableNamedTemporaryFile()
|
||||
fo = open(rntf.name, "wb")
|
||||
for l in f:
|
||||
if strip:
|
||||
l = l.strip() + '\n'
|
||||
fo.write(l)
|
||||
fo.close()
|
||||
import shutil
|
||||
if not nobak:
|
||||
shutil.copyfile(fname, fname + ".lines.py-bak")
|
||||
import shutil
|
||||
try:
|
||||
shutil.move(rntf.name, fname)
|
||||
except EnvironmentError:
|
||||
# Couldn't atomically overwrite, so just hope that this process doesn't die
|
||||
# and the target file doesn't get recreated in between the following two
|
||||
# operations:
|
||||
if nobak:
|
||||
os.remove(fname)
|
||||
else:
|
||||
shutil.move(fname, fname + ".lines.py-bak-2")
|
||||
shutil.move(rntf.name, fname)
|
||||
|
||||
def darcs_metadir_dirpruner(dirs):
|
||||
if "_darcs" in dirs:
|
||||
dirs.remove("_darcs")
|
||||
|
||||
SCRE=re.compile("\\.(py|php|c|h|cpp|hpp|txt|sh|pyx|pxi|html|htm)$|makefile$", re.IGNORECASE)
|
||||
def source_code_filepruner(fname):
|
||||
return SCRE.search(fname)
|
||||
|
||||
def all_filepruner(fname):
|
||||
return True
|
||||
|
||||
def all_dirpruner(dirs):
|
||||
return
|
||||
|
||||
def lineify_all_files(dirname, strip=False, nobak=True, dirpruner=all_dirpruner, filepruner=all_filepruner):
|
||||
for (root, dirs, files,) in os.walk(dirname):
|
||||
dirpruner(dirs)
|
||||
for fname in files:
|
||||
fullfname = os.path.join(root, fname)
|
||||
if filepruner(fullfname):
|
||||
lineify_file(fullfname, strip=strip, nobak=nobak)
|
||||
Reference in New Issue
Block a user