So far I have the feed and an archive of the revisions being automatically generated and uploaded to the remote server daily.
Having an RSS feed for the SVN commit history presented an interesting problem where I couldn't really update the script_version field in the scripts schema.sql file without clogging up my revision history with worthless updates about the version number being updated.
So, I wrote a small script that exports a copy of the script, retrieves the SVN revision number from the repo, then updates schema.sql with the correct version number before finally packaging script for me.
In case anyone's curious, here's the code for that. This little script lives in my working copy on my workstation, not under version control.
#!/bin/bash
echo "Exporting HEAD revision..."
svn -q export http://192.168.1.102/svn/wallpaper-script
echo "Updating working copy..."
svn -q update
php -r '
$properties = `svn info -r HEAD`;
if(preg_match("#^revision:\s*(\d+)\s*$#im", $properties, $revision))
{
echo "Updating script version in schema.sql to 2.{$revision[1]}...", PHP_EOL;
$schema = file_get_contents("wallpaper-script/install/schema.sql");
$schema = str_replace("script_version'\'', '\''2.0'\'')", "script_version'\'', '\''2.{$revision[1]}'\'')", $schema);
file_put_contents("wallpaper-script/install/schema.sql", $schema);
echo "Compressing package...", PHP_EOL;
shell_exec("tar zcf wallpaper-site-script_2.{$revision[1]}.tar.gz wallpaper-script");
}
'
echo "Cleaning Up..."
rm -rf wallpaper-script
echo "Done."
No comments:
Post a Comment