Took me a while to find out how to connect to the Site Gallery, so this might save you some time.
using (SPSite root = new SPSite([yourRootURL]))
{
// DELETE OLD TEMPLATES
List<string> toDelete = new List<string>();
using (SPWeb web = root.OpenWeb())
{
SPFolder folder = web.Folders["_catalogs"];
SPFolder subfolder = folder.SubFolders["wt"];
using (SPWeb web = root.OpenWeb())
{
SPFolder folder = web.Folders["_catalogs"];
SPFolder subfolder = folder.SubFolders["wt"];
int numberOfTemplates = subfolder.Files.Count;
for (int i = (numberOfTemplates - 1); i >= 0; i--)
{
subfolder.Files.Delete(subfolder.Files
.Url);
}
}
}
// SAVE SITE AS TEMPLATE
using (SPWeb web = root.OpenWeb([yourSiteUrl]))
{
web.SaveAsTemplate("[Filename]", "[Title]", "[Description]", true/false);
}
}
Credits to Serge for pointing me in the right direction: http://weblogs.asp.net/soever/archive/2006/06/28/NAnt-task-for-SharePoint_3A00_-Save-SPWeb-as-site-template-to-the-filesystem.aspx