Skip to content

Instantly share code, notes, and snippets.

@DavidPu
Last active October 3, 2017 20:42
Show Gist options
  • Save DavidPu/cfa1040f7ad46a5210f4aa00fd60b896 to your computer and use it in GitHub Desktop.
Save DavidPu/cfa1040f7ad46a5210f4aa00fd60b896 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -euo pipefail
# readonly SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
function process() {
python - << END_OF_PY_CODE
import os
import re
from multiprocessing import Pool
kerndir, kerntests, dsttestdirs = '$@'.split(' ')
def proc_fname(fname):
txt = open(fname).read()
txt = re.sub(r'/?' + kerndir + '/', 'kernel/', txt)
txt = re.sub(r'/?' + kerntests + '/', dsttestdirs + '/', txt)
txt = re.sub(r'\.\.\/[\.\/]+',
'../' * len(re.findall('/', fname.lstrip('./'))), txt)
with open(fname, 'w+') as f:
f.write(txt)
def fname_generator(root='.', ext='.html'):
for dirpath, dirnames, filenames in os.walk(root):
for h in filter(lambda f: f.endswith(ext), filenames):
yield os.path.join(dirpath, h)
pool = Pool(12)
pool.map(proc_fname, fname_generator())
pool.close()
pool.join()
END_OF_PY_CODE
}
TOP="/path/to/my/kernel/src"
kerndir=${TOP#/}/kernel
kerntests=$(find ${TOP#/}/out -name "kernel_space_tests" -type d)
dsttestdirs="tests-kernel/linux/kernel_space_tests"
mkdir -p ${dsttestdirs}
echo ${kerndir}
echo ${kerntests}
rm -rf kernel ${dsttestdirs}
mv ${kerndir} kernel
mv ${kerntests} ${dsttestdirs}
process $kerndir $kerntests $dsttestdirs
# for f in $(find . -name "*.html" -printf "%P "); do
# sed -i -e "s|[\/]\?${kerndir}/|kernel/|g" -e "s|[\/]\?${kerntests}/|${dsttestdirs}/|g" ${f}
# if egrep -q "\.\.\/" ${f}; then
# # fix level of related path ../ keep '/' only and translate it to '../'
# lvl=${f//[^\/]}
# relp=${lvl//\//\.\.\/}
# sed -i "s|\.\.\/[\.\/]\+|${relp}|g" ${f}
# fi
# done
rm -rf $(echo ${TOP#/} |cut -d'/' -f1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment