diff --git a/LDP/migration-2016/old-migration.py b/LDP/migration-2016/old-migration.py deleted file mode 100644 index f8c3af86..00000000 --- a/LDP/migration-2016/old-migration.py +++ /dev/null @@ -1,138 +0,0 @@ -#! /usr/bin/python -# -# -- migrate to the new naming scheme - -from __future__ import absolute_import, division, print_function - -import os -import sys -import errno -import logging -import functools - -logformat = '%(levelname)-9s %(name)s %(filename)s#%(lineno)s ' \ - + '%(funcName)s %(message)s' -logging.basicConfig(stream=sys.stderr, format=logformat, -level=logging.ERROR) -logger = logging.getLogger(__name__) - -# -- short names -# -opa = os.path.abspath -opb = os.path.basename -opd = os.path.dirname -opj = os.path.join -opn = os.path.normpath -opr = os.path.relpath -ops = os.path.split - -movingstems = dict() -movingstems['intro-linux'] = 'Intro-Linux' - -def namegenerator(suffix, stem, dirname): - fname = os.path.join(dirname, stem, stem + suffix) - if os.path.exists(fname): - return fname - else: - return None - -pdf = functools.partial(namegenerator, '.pdf') -txt = functools.partial(namegenerator, '.txt') -html = functools.partial(namegenerator, '.html') -htmls = functools.partial(namegenerator, '-single.html') - -def validate_args(argv): - if len(argv) == 4: - for d in argv[:3]: - if not os.path.isdir(d): - return False - return True - return False - - -def printstems(fname): - print(fname) - - -def firstdir(fdir): - if os.path.isabs(fdir): - raise ValueError("received absolute path") - desired = os.path.normpath(fdir) - while os.path.sep in desired: - desired, _ = os.path.split(desired) - return desired - - -def stem_and_ext(name): - '''return (stem, ext) for any relative or absolute filename''' - return os.path.splitext(os.path.basename(os.path.normpath(name))) - -def extract_rs_html(root, name): - found = opj(root, name) - relpath = opr(found, start=root) - stem = firstdir(relpath) - return relpath, stem - - -def extract_rs_htmls(root, name): - found = opj(root, name) - relpath = opr(found, start=opj(root, 'html_single')) - stem = firstdir(relpath) - return relpath, stem - - -def extract_relpath_and_stem(root, name): - found = opj(root, name) - stem, _ = stem_and_ext(found) - relpath = opr(found, start=root) - return relpath, stem - -def extract_stem_firstdir(name, base): - relpath = opr(name, start=base) - stem = firstdir(relpath) - return stem - - -def walktree(func, pubdir, oldtree, newtree, urlpath): - for root, dirs, files in os.walk(oldtree): - for x in files: - found = os.path.join(root, x) - relpath = os.path.relpath(found, start=oldtree) - _, ext = stem_and_ext(found) - if ext not in ('.pdf', '.html', '.txt'): - if not relpath.startswith('text'): - func(('skip', '', '', '', found)) - continue - if relpath.startswith('text') and ext == '': - relpath, stem = extract_relpath_and_stem(oldtree, found) - newname = txt(stem, pubdir) - func(('TEXT', stem, relpath, newname, found)) - elif relpath.startswith('pdf') and ext == '.pdf': - relpath, stem = extract_relpath_and_stem(oldtree, found) - newname = pdf(stem, pubdir) - func(('PDF', stem, relpath, newname, found)) - elif relpath.startswith(opj(oldtree, 'html_single')): - stem = extract_stem_firstdir(found, opj(oldtree, 'html_single')) - newname = htmls(stem, pubdir) - func(('HTMLS', stem, relpath, newname, found)) - elif root == oldtree: # -- plain-files at root - pass - else: - relpath, stem = extract_rs_html(oldtree, found) - newname = html(stem, pubdir) - func(('HTML', stem, relpath, newname, found)) - - -def main(fin, fout, argv): - me = os.path.basename(sys.argv[0]) - usage = "usage: %s " % (me,) - if not validate_args(argv): - return usage - pubdir, oldtree, newtree, urlpath = argv - walktree(printstems, pubdir, oldtree, newtree, urlpath) - return os.EX_OK - -if __name__ == '__main__': - sys.exit(main(sys.stdin, sys.stdout, sys.argv[1:])) - -# -- end of file