#!/bin/bash function export_files() { local srcbase=$1 local dstbase=$2 echo "Copying files..." while read src dst do [ -d "$dstbase/$dst" ] || mkdir -p "$dstbase/$dst" cp "$srcbase/$src" "$dstbase/$dst" done } echo "Cleaning up work/ directory..." [ -d work.old/ ] && chmod 777 -R work.old/ && rm -rf work.old/ [ -d work ] && mv work/ work.old/ mkdir work/ srcbase=".." dstbase="work/tarball" commit=$(cd $srcbase ; git describe --always HEAD) buildname=editablesite-$commit srclocale=$srcbase/locale dstlocale="$dstbase/$buildname/admin/locale" archfile=out/$buildname export_files $srcbase $dstbase/$buildname <<EOT ./README ./ ./code/index.php ./ ./code/admin/add.php ./admin/ ./code/admin/admin.css ./admin/ ./code/admin/admin.js ./admin/ ./code/admin/ajax.php ./admin/ ./code/admin/auth.php ./admin/ ./code/admin/editor-bind-code.html ./admin/ ./code/admin/index.php ./admin/ ./code/admin/render.php ./admin/ ./code/admin/utils.php ./admin/ ./libs/microajax/microajax.minified.js ./admin/ ./libs/treeview/treeview.css ./admin/ ./libs/treeview/treeview_icons.png ./admin/ ./samplefiles/templates/default/layout-article.php ./admin/templates/default/ ./samplefiles/templates/default/screen.css ./admin/templates/default/ EOT echo Generating locale binary files... for f in $(ls $srclocale/*.po) do fname=$(basename "$f") mo_dir="$dstlocale/"${fname%%.po}.utf8/LC_MESSAGES [ -d "$mo_dir" ] || mkdir -p "$mo_dir" echo msgfmt -o "'$mo_dir/editablesite.mo'" "'$f'" msgfmt -o "$mo_dir/editablesite.mo" "$f" done export_files $srcbase $dstbase/$buildname <<EOT ./samplefiles/content/en/start/div-content.html ./admin/content/en/start/ ./samplefiles/content/en/start/div-teaser.html ./admin/content/en/start/ ./samplefiles/content/en/start/props.ini ./admin/content/en/start/ ./samplefiles/content/fr/accueil/div-content.html ./admin/content/fr/accueil/ ./samplefiles/content/fr/accueil/div-teaser.html ./admin/content/fr/accueil/ ./samplefiles/content/fr/accueil/props.ini ./admin/content/fr/accueil/ ./samplefiles/content/site_conf.ini ./admin/content/ ./samplefiles/templates/aloha/images/background.png ./admin/templates/aloha/images/ ./samplefiles/templates/aloha/images/external-link-ltr-icon.png ./admin/templates/aloha/images/ ./samplefiles/templates/aloha/layout-article.php ./admin/templates/aloha/ ./samplefiles/templates/aloha/screen.css ./admin/templates/aloha/ EOT echo "Adjusting perms..." ( cd $dstbase/$buildname || exit 1 find -type d -print0 | xargs -0r chmod 775 find admin/ -type d -print0 | xargs -0r chmod 755 find -type f -name '*.php' -print0 | xargs -0r chmod 755 find -type f \! -name '*.php' -print0 | xargs -0r chmod 644 find admin/content -type f -print0 | xargs -0r chmod 664 ) echo "Generating sample pages..." ( umask 002 cd $dstbase/$buildname/admin find_dir="./content/" find $find_dir -name 'props.ini' -printf '%h\n' | while read f do #echo php render.php ${f##$find_dir} php render.php ${f##$find_dir} >/dev/null done ) echo "Creating tarball..." # Tarball with samples tar cf $archfile.tar -C "$dstbase" --owner root --group www-data $buildname/ echo "Compressing..." gzip -9 -c $archfile.tar > $archfile.tar.gz ( cd "$dstbase" ; zip -9 -q -r - $buildname/) > $archfile.zip rm $archfile.tar sudo tar -xf $archfile.tar.gz -C /var/www/