Skip to content

Instantly share code, notes, and snippets.

@tvaughan
Created October 3, 2011 23:21
Show Gist options
  • Save tvaughan/1260526 to your computer and use it in GitHub Desktop.
Save tvaughan/1260526 to your computer and use it in GitHub Desktop.
#!/bin/sh -e
PROJECT_LINK=
PROJECT_NAME=
if [ "${PROJECT_NAME}" = "" ]; then
echo "ERROR: PROJECT_NAME is required"
exit 1
fi
if [ -d django-layout ]; then
echo "ERROR: django-layout exists"
exit 1
fi
if [ -d "${PROJECT_NAME}" ]; then
echo "ERROR: ${PROJECT_NAME} exists"
exit 1
fi
git clone git@github.com:rentalita/django-layout.git django-layout
cp -a django-layout .django-layout
rm -rf .django-layout/.git
git clone "${PROJECT_LINK}" "${PROJECT_NAME}"
cp -a "${PROJECT_NAME}" ."${PROJECT_NAME}"
rm -rf ."${PROJECT_NAME}"/.git
LOWER_NAME="${PROJECT_NAME}"
LOWER_NAME="$(echo "${LOWER_NAME}" | perl -pe '$_ = lc;')"
UPPER_NAME="$(echo "${LOWER_NAME}" | perl -pe '$_ = uc;')"
FIRST_NAME="$(echo "${LOWER_NAME}" | perl -pe '$_ = ucfirst;')"
cd .django-layout
find . -type f -print0 | xargs -0 perl -pi -e "s/\@OVID\@/${UPPER_NAME}/g;"
find . -type f -print0 | xargs -0 perl -pi -e "s/\@ovid\@/${LOWER_NAME}/g;"
find . -type f -print0 | xargs -0 perl -pi -e "s/\@Ovid\@/${FIRST_NAME}/g;"
for d in $(find . -type d -name "*ovid*"); do
mv $d $(echo $d | perl -p -e "s/ovid/${LOWER_NAME}/g;")
done
for d in $(find . -type d -name "*OVID*"); do
mv $d $(echo $d | perl -p -e "s/OVID/${UPPER_NAME}/g;")
done
for d in $(find . -type d -name "*Ovid*"); do
mv $d $(echo $d | perl -p -e "s/Ovid/${FIRST_NAME}/g;")
done
for f in $(find . -type f -name "*OVID*"); do
mv $f $(echo $f | perl -p -e "s/OVID/${UPPER_NAME}/g;")
done
for f in $(find . -type f -name "*ovid*"); do
mv $f $(echo $f | perl -p -e "s/ovid/${LOWER_NAME}/g;")
done
for f in $(find . -type f -name "*Ovid*"); do
mv $f $(echo $f | perl -p -e "s/Ovid/${FIRST_NAME}/g;")
done
cd ..
cd ."${PROJECT_NAME}"
find . -type f -print0 | xargs -0 perl -pi -e "s/${UPPER_NAME}/\@OVID\@/g;"
find . -type f -print0 | xargs -0 perl -pi -e "s/${LOWER_NAME}/\@ovid\@/g;"
find . -type f -print0 | xargs -0 perl -pi -e "s/${FIRST_NAME}/\@Ovid\@/g;"
for d in $(find . -type d -name "*${LOWER_NAME}*"); do
mv $d $(echo $d | perl -p -e "s/${LOWER_NAME}/ovid/g;")
done
for d in $(find . -type d -name "*${UPPER_NAME}*"); do
mv $d $(echo $d | perl -p -e "s/${UPPER_NAME}/OVID/g;")
done
for d in $(find . -type d -name "*${FIRST_NAME}*"); do
mv $d $(echo $d | perl -p -e "s/${FIRST_NAME}/Ovid/g;")
done
for f in $(find . -type f -name "*${LOWER_NAME}*"); do
mv $f $(echo $f | perl -p -e "s/${LOWER_NAME}/ovid/g;")
done
for f in $(find . -type f -name "*${UPPER_NAME}*"); do
mv $f $(echo $f | perl -p -e "s/${UPPER_NAME}/OVID/g;")
done
for f in $(find . -type f -name "*${FIRST_NAME}*"); do
mv $f $(echo $f | perl -p -e "s/${FIRST_NAME}/Ovid/g;")
done
cd ..
tar -C .django-layout/django-layout -cf - $(cd .django-layout/django-layout; find .) | \
$(tar -C "${PROJECT_NAME}" -xf -)
rm -rf .django-layout
tar -C ."${PROJECT_NAME}" -cf - $(cd ."${PROJECT_NAME}"; find .) | \
$(tar -C django-layout/django-layout -xf -)
rm -rf ."${PROJECT_NAME}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment