Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 29667)
+++ trunk/ippTools/share/Makefile.am	(revision 29671)
@@ -21,4 +21,8 @@
 	bgtool_advancechip.sql \
 	bgtool_advancewarp.sql \
+	bgtool_change_chiprun_state.sql \
+	bgtool_change_imfile_data_state.sql \
+	bgtool_change_warprun_state.sql \
+	bgtool_change_skyfile_data_state.sql \
 	bgtool_chipinputs.sql \
 	bgtool_chip.sql \
@@ -29,4 +33,8 @@
 	bgtool_listchip.sql \
 	bgtool_listwarp.sql \
+	bgtool_pendingcleanupchiprun.sql \
+	bgtool_pendingcleanupchipimfile.sql \
+	bgtool_pendingcleanupwarprun.sql \
+	bgtool_pendingcleanupwarpskyfile.sql \
 	bgtool_revertchip.sql \
 	bgtool_revertwarp.sql \
Index: trunk/ippTools/share/bgtool_change_chiprun_state.sql
===================================================================
--- trunk/ippTools/share/bgtool_change_chiprun_state.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_change_chiprun_state.sql	(revision 29671)
@@ -0,0 +1,10 @@
+UPDATE chipBackgroundRun
+SET chipBackgroundRun.state = '%s',
+    chipBackgroundRun.magicked = IF(chipBackgroundRun.magicked != 0, -1, 0)
+WHERE chip_bg_id = %lld
+AND (SELECT COUNT(class_id)
+    FROM chipBackgroundImfile 
+    WHERE 
+        chipBackgroundImfile.chip_bg_id = chipBackgroundRun.chip_bg_id
+        AND data_state != '%s'
+    ) = 0
Index: trunk/ippTools/share/bgtool_change_imfile_data_state.sql
===================================================================
--- trunk/ippTools/share/bgtool_change_imfile_data_state.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_change_imfile_data_state.sql	(revision 29671)
@@ -0,0 +1,5 @@
+UPDATE chipBackgroundImfile
+    JOIN chipBackgroundRun USING(chip_bg_id)
+SET data_state = '%s',
+    chipBackgroundImfile.magicked = IF(chipBackgroundImfile.magicked != 0, -1, 0)
+WHERE chip_bg_id = %lld AND class_id = '%s'
Index: trunk/ippTools/share/bgtool_change_skyfile_data_state.sql
===================================================================
--- trunk/ippTools/share/bgtool_change_skyfile_data_state.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_change_skyfile_data_state.sql	(revision 29671)
@@ -0,0 +1,5 @@
+UPDATE warpBackgroundSkyfile
+    JOIN warpBackgroundRun USING(warp_bg_id)
+SET data_state = '%s',
+    warpBackgroundSkyfile.magicked = IF(warpBackgroundSkyfile.magicked != 0, -1, 0)
+WHERE warp_bg_id = %lld AND skycell_id = '%s'
Index: trunk/ippTools/share/bgtool_change_warprun_state.sql
===================================================================
--- trunk/ippTools/share/bgtool_change_warprun_state.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_change_warprun_state.sql	(revision 29671)
@@ -0,0 +1,10 @@
+UPDATE warpBackgroundRun
+SET state = '%s',
+    warpBackgroundRun.magicked = IF(warpBackgroundRun.magicked != 0, -1, 0)
+WHERE warp_bg_id = %lld
+AND (SELECT COUNT(skycell_id)
+    FROM warpBackgroundSkyfile 
+    WHERE 
+        warpBackgroundSkyfile.warp_bg_id = warpBackgroundRun.warp_bg_id
+        AND data_state != '%s'
+    ) = 0
Index: trunk/ippTools/share/bgtool_pendingcleanupchipimfile.sql
===================================================================
--- trunk/ippTools/share/bgtool_pendingcleanupchipimfile.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_pendingcleanupchipimfile.sql	(revision 29671)
@@ -0,0 +1,15 @@
+SELECT
+    chipBackgroundImfile.*,
+    chipBackgroundRun.state,
+    chipBackgroundRun.workdir,
+    chipBackgroundRun.label
+FROM chipBackgroundRun
+JOIN chipBackgroundImfile
+    USING(chip_bg_id)
+WHERE
+   ((chipBackgroundRun.state = 'goto_cleaned' AND (chipBackgroundImfile.data_state = 'full'
+                                       OR chipBackgroundImfile.data_state = 'update'))
+OR 
+   (chipBackgroundRun.state = 'goto_scrubbed' AND chipBackgroundImfile.data_state != 'scrubbed')
+OR 
+   (chipBackgroundRun.state = 'goto_purged' AND chipBackgroundImfile.data_state != 'purged'))
Index: trunk/ippTools/share/bgtool_pendingcleanupchiprun.sql
===================================================================
--- trunk/ippTools/share/bgtool_pendingcleanupchiprun.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_pendingcleanupchiprun.sql	(revision 29671)
@@ -0,0 +1,12 @@
+SELECT 
+    chipBackgroundRun.*,
+    CONCAT_WS('.', exp_name, exp_id) AS exp_tag,
+    rawExp.camera
+FROM chipBackgroundRun
+    JOIN chipRun USING(chip_id)
+    JOIN rawExp USING(exp_id)
+WHERE (chipBackgroundRun.state = 'goto_cleaned' 
+    OR chipBackgroundRun.state = 'goto_purged'
+    OR chipBackgroundRun.state = 'goto_scrubbed'
+    )
+
Index: trunk/ippTools/share/bgtool_pendingcleanupwarprun.sql
===================================================================
--- trunk/ippTools/share/bgtool_pendingcleanupwarprun.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_pendingcleanupwarprun.sql	(revision 29671)
@@ -0,0 +1,13 @@
+SELECT warpBackgroundRun.*,
+    CONCAT_WS('.', exp_name, exp_id) AS exp_tag,
+    rawExp.camera
+FROM warpBackgroundRun
+    JOIN warpRun USING(warp_id)
+    JOIN fakeRun USING(fake_id)
+    JOIN camRun USING(cam_id)
+    JOIN chipRun USING(chip_id)
+    JOIN rawExp USING(exp_id)
+WHERE (warpBackgroundRun.state = 'goto_cleaned'
+        OR warpBackgroundRun.state = 'goto_purged' 
+        OR warpBackgroundRun.state = 'goto_scrubbed')
+
Index: trunk/ippTools/share/bgtool_pendingcleanupwarpskyfile.sql
===================================================================
--- trunk/ippTools/share/bgtool_pendingcleanupwarpskyfile.sql	(revision 29671)
+++ trunk/ippTools/share/bgtool_pendingcleanupwarpskyfile.sql	(revision 29671)
@@ -0,0 +1,15 @@
+SELECT
+    warpBackgroundSkyfile.*,
+    warpBackgroundRun.state,
+    warpBackgroundRun.workdir,
+    warpBackgroundRun.label
+FROM warpBackgroundRun
+JOIN warpBackgroundSkyfile
+    USING(warp_bg_id)
+WHERE
+   ((warpBackgroundRun.state = 'goto_cleaned' AND (warpBackgroundSkyfile.data_state = 'full'
+                                       OR warpBackgroundSkyfile.data_state = 'update'))
+OR 
+   (warpBackgroundRun.state = 'goto_scrubbed' AND warpBackgroundSkyfile.data_state != 'scrubbed')
+OR 
+   (warpBackgroundRun.state = 'goto_purged' AND warpBackgroundSkyfile.data_state != 'purged'))
