#!/bin/bash
#
# Migrate a "users" directory created by Maqetta Preview 6 for use by Preview 7.
#
# NOTE: This script MUST be run from the Maqetta 'users' directory
#
users=`pwd`
function migrate_project {
path=$1
libSettings="$path/.settings/libs.settings"
# If this is an Eclipse project (check for presense of .project file), then
# we need to create library paths beginning with "WebContent/".
if [[ -f "$path/.project" ]]; then
eclipseDir="WebContent/"
else
eclipseDir=""
fi
mainFolder="$path/$eclipseDir"
#
# Change default location of 'maqetta' library; and add line for 'grids' library
#
echo "4. Update $libSettings"
sed '
s|id="dojo" name="dojo" version="1.7"|id="dojo" name="dojo" version="1.8"|
s|id="DojoThemes" name="DojoThemes" version="1.7"|id="DojoThemes" name="DojoThemes" required="true" version="1.8"|
s|id="gridx" name="gridx" version="[^"]*"|id="gridx" name="gridx" version="1.0.0"|
s|id="html" name="html" version="0.8"|id="html" name="html" required="true" version="0.8"|
s|id="maqetta" name="maqetta" version="0.3"|id="maqetta" name="maqetta" required="true" version="0.3"|
s|||
s|||
s|\(\)|\
\1|
s|\(\)|\
\1|
' <"$libSettings" >"$libSettings.new"
mv "$libSettings.new" "$libSettings"
#
# Remove Sample files
#
echo "5. Remove samples"
rm -f "${mainFolder}Sample1.html"
rm -f "${mainFolder}Sample2.html"
rm -f "${mainFolder}Sample3-Mobile.html"
rm -f "${mainFolder}SampleBanner.jpg"
rm -f "${mainFolder}SampleJs.js"
rm -rf "${mainFolder}sample_data"
#
# Remove 'maqetta' library files script tags
#
echo "6. Edit HTML files"
find "$mainFolder" \( -name "*.html" -o -name "*.html.workingcopy" \) \
-exec sed -i '
s|||
s|||
' {} \;
#
# Update version in Dojo path.
#
themesFolder="${mainFolder}themes"
if [[ -d "$themesFolder" ]]; then
echo "7. Update dojo-theme-editor.html"
find "$themesFolder" -name dojo-theme-editor.html \
-exec sed -i 's|/maqetta/app/static/lib/dojo/1.7|/maqetta/app/static/lib/dojo/1.8|g' {} \;
fi
}
function migrate_workspace {
path=$1
name=`basename "$path"`
re="_Guest_[0-9]+"
if [[ "$name" =~ $re ]]; then
echo "2. delete guest workspace $path"
rm -r "$path"
else
#
# migrating user workspace
#
echo "3. delete $path/.review"
rm -rf "$path/.review"
# migrate project
for i in "$path"/*; do
if [[ -d "$i" ]]; then
migrate_project "$i"
fi
done
fi
}
#
# delete top-level /.review
#
echo "1. delete top-level $users/.review dir"
rm -rf "$users/.review"
# migrate user workspaces
for i in "$users"/*; do
if [[ -d "$i" ]]; then
migrate_workspace "$i"
fi
done