src/hg/hgc/hgdpClick.c 1.7
1.7 2009/05/04 17:44:39 angie
Remove the working directory after generating images, because the cleaner script does not remove empty dirs (Thx Hiram).
Index: src/hg/hgc/hgdpClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/hgdpClick.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -b -B -U 4 -r1.6 -r1.7
--- src/hg/hgc/hgdpClick.c 17 Mar 2009 19:05:58 -0000 1.6
+++ src/hg/hgc/hgdpClick.c 4 May 2009 17:44:39 -0000 1.7
@@ -203,8 +203,28 @@
if (rename(oldName, newName))
errAbort("Cannot rename %s to %s", oldName, newName);
}
+static void removeDir(char *dirName)
+/* Remove all files in a directory and the directory itself. */
+// NOTE: If this is ever to be libified, beef it up:
+// 1. Add recursion to subdirs (maybe enabled by a new boolean arg)
+// 2. Make sure dirName exists
+// 3. Make sure current dir is not dirName or a subdir of dirName
+{
+struct slName *file;
+struct dyString *dy = dyStringNew(0);
+for (file = listDir(dirName, "*"); file != NULL; file = file->next)
+ {
+ dyStringClear(dy);
+ dyStringPrintf(dy, "%s/%s", dirName, file->name);
+ if (unlink(dy->string) != 0)
+ errAbort("unlink failed for file %s: %d", dy->string, errno);
+ }
+if (rmdir(dirName) != 0)
+ errAbort("rmdir failed for dir %s: %d", dirName, errno);
+}
+
static void generateImgFiles(struct hgdpGeo *geo, char finalEpsFile[PATH_LEN],
char finalPdfFile[PATH_LEN], char finalPngFile[PATH_LEN])
/* Using the frequencies given in geo and the population latitude and longitude
* given above, plot allele frequency pie charts for each population on a world map.
@@ -297,8 +317,12 @@
safef(tmpPath, sizeof(tmpPath), "%s/%s", dirTn.forCgi, pdfFile);
mustRename(tmpPath, finalPdfFile);
safef(tmpPath, sizeof(tmpPath), "%s/%s", dirTn.forCgi, pngFile);
mustRename(tmpPath, finalPngFile);
+
+// Clean up the temporary working directory (trash cleaner script doesn't
+// remove empty dirs:
+removeDir(dirTn.forCgi);
}
static boolean canMakeImages()