tree: 40d7f2bea0035550d7dc05a3410f698fdf7d150c [path history] [tgz]
  1. commit2git.sh
  2. convert2md.awk
  3. convert2md.sh
  4. convert2md2.sh
  5. copyasset.sh
  6. dos2unix.pl
  7. fetch-all-web.sh
  8. kenai2website.sh
  9. migration2git.sh
  10. migration2git2.sh
  11. migration4css.sh
  12. migration4release.sh
  13. push2git.sh
  14. README-TO-CMS.txt
  15. README.md
  16. redirect.table
  17. redirect.txt
  18. urlrewrite.sed
  19. urlrewrite.sh
  20. urlrewrite2.sed
  21. urlrewrite2.sh
  22. web-list.txt
migration-tools/README.md

Migration from CMS to Github/JBake

NOTE This folder contains historical scripts from migrations of the OpenOffice.org website. This is both the migration described in this README and the original migration from Oracle's Kenai to the deprecated and decommisioned Apache CMS

Clone the Git Repository

cd ~/Development/openoffice
rm -rf ooo-site.git
git clone https://gitbox.apache.org/repos/asf/openoffice-org.git ooo-site.git
git fetch
git pull
git checkout main
  • Content goes here:
cd ~/Development/openoffice/ooo-sit.git/content/

These files are processed by templates

  • Assets go here:
cd ~/Development/openoffice/ooo-sit.git/assets/

These are copied to the site unmodified.

Checkout Old SVN CMS version of site.

cd ~/Development/openoffice
rm -rf ooo-site
svn co https://svn.apache.org/repos/asf/openoffice/ooo-site/trunk ooo-site

Setup Environment variables.

# location of CMS content
export SVNPATH="~/Development/openoffice/ooo-site/content"
# location of Git repository checkout
export GITPATH="~/Development/openoffice/ooo-site.git"

List of Folders.

These won‘t be done in one session. Make the list and track what you’ve migrated.

cd ${SVNPATH}
find . -type d -depth 1 -print | sed -e 's!./!!' | sort

You could compare with the git targets with:

cd ${GITPATH}/assets
find . -type d -depth 1 -print | sed -e 's!./!!' | sort
cd ${GITPATH}/content
find . -type d -depth 1 -print | sed -e 's!./!!' | sort

Migration of a Folder.

cd ${SVNPATH}
${GITPATH}/tools/migration2git.sh downloads

Some folders are larger than others. Pay attention to the running count.

Periodic Builds

cd ${GITPATH}
./build_staging.sh
# on asf-staging branch
./copy_staging.sh
# on asf-site branch

This is done so that the commits in asf-staging and asf-site do not get too large.

Tool Scripts

  1. tools/commit2git.sh ${1} ${2} ${3}
# ${1} Category 'assets','content'
# ${2} Path to commit
# ${3} Description for commit message - 'assets','large asset','html content','Markdown pages','brand','navigator'
cd ${GITPATH}
git add ${1}/${2}
git commit -m 'Migration of ${2} ${3}'
  1. tools/convert2md.sh ${1} ${2}

    tools/convert2md2.sh was used in the part2 migration for api.

# ${1} Template type 'brand','navigator','page'
# ${2} Path of mdtext file to convert to md file
echo 'type=${1}' > ${GITPATH}/content/${2}
nawk -f ${GITPATH}/tools/convert2md.awk ${2} >> ${GITPATH}/content/${2}
  1. tools/migration2git.sh ${1}

    tools/migration2git2.sh and tools/migration4css.sh were run in later phases.

# ${1} Site folder to migrate
cd ${SVNPATH}
echo 'Migrating ${SVNPATH}/${1} to ${GITPATH}
echo
# 1 - Tree structure
echo 'copy directory structure to assets and content trees'
find ${1} -type d ! -empty -exec mkdir -p ${GITPATH}/assets/{} \; -exec mkdir -p ${GITPATH}/content/{} \;
# git does not commit empty directories
echo
# 2 - Large Assets
echo 'copy assets larger than 3M as separate commits'
find ${1} -type f -size +3M -exec cp {} ${GITPATH}/assets/{} \; -exec ${GITPATH}/tools/commit2git.sh assets {} 'large asset' \;
echo
# 3 - Assets
echo 'copy assets not (html and mdtext) to assets tree'
find ${1} -type f ! -name "*.html" ! -name "*.htm" ! -name "*.mdtext" ! -size +3M -exec cp -p {} ${GITPATH}/assets/{} \;
# commit and push
${GITPATH}/tools/commit2git.sh assets ${1} 'assets'
echo
# 4 - HTML
echo 'copy html to content tree'
find ${1}  -type f \( -name "*.html" -or -name "*.htm" \) ! -size +3M -exec cp -p {} ${GITPATH}/content/{} \;
# commit and push
${GITPATH}/tools/commit2git.sh content ${1} 'html content'
echo
# 5 - Brand
echo 'Convert brand'
find ${1} -name "brand.mdtext" -type f -exec ${GITPATH}/tools/convert2md.sh brand {} \;
echo
# 6 - Navigators
echo 'Convert navigators'
find ${1} -name "*nav.mdtext" -type f -exec ${GITPATH}/tools/convert2md.sh navigator {} \;
echo
# 7 - Markdown
echo 'Convert markdown pages'
find ${1} -name "*.mdtext" ! -name "brand.mdtext" ! -name "*nav.mdtext" -type f -exec ${GITPATH}/tools/convert2md.sh page {} \;
# commit and push
${GITPATH}/tools/commit2git.sh content ${1} 'Markdown pages'
echo
# 8 - Push to git
echo 'Push to Gitbox'
${GITPATH}/tools/push2git.sh
  1. tools/push2git.sh
cd ${GITPATH}
git push