aboutsummaryrefslogtreecommitdiff
path: root/sm
diff options
context:
space:
mode:
authorsienkiew <sienkiew@d34015c8-bcbb-4646-8ac8-8ba5febf221d>2012-01-18 17:36:05 -0500
committersienkiew <sienkiew@d34015c8-bcbb-4646-8ac8-8ba5febf221d>2012-01-18 17:36:05 -0500
commita5afe5f657f5812ea95c5eb476eb355de6afa5a9 (patch)
treef14049a9056e660abf736073ae14a7221011fca0 /sm
parentc7082d39ae1f653fc33383d9e093d54b00022fd5 (diff)
downloadsteuermann-a5afe5f657f5812ea95c5eb476eb355de6afa5a9.tar.gz
new sm files for nightly builds
IMPORT feature in specification language checkpointing of various uncommitted changes git-svn-id: https://svn.stsci.edu/svn/ssb/etal/steuermann/trunk@538 d34015c8-bcbb-4646-8ac8-8ba5febf221d
Diffstat (limited to 'sm')
-rw-r--r--sm/A_astrolib.sm5
-rw-r--r--sm/A_cdbs.sm2
-rw-r--r--sm/A_dev.sm3
-rw-r--r--sm/A_pyetc.sm1
-rw-r--r--sm/A_x.sm11
-rw-r--r--sm/A_xb.sm2
-rw-r--r--sm/B_dev.sm5
-rw-r--r--sm/B_x.sm5
-rw-r--r--sm/assemble_astrolib.sm6
-rw-r--r--sm/assemble_common.sm10
-rw-r--r--sm/assemble_dev.sm19
-rw-r--r--sm/assemble_x.sm22
-rw-r--r--sm/build_astrolib.sm5
-rw-r--r--sm/build_dev.sm75
-rw-r--r--sm/build_x.sm80
-rw-r--r--sm/cdbs.sm13
-rw-r--r--sm/dist_dev.sm106
-rw-r--r--sm/dist_x.sm111
-rw-r--r--sm/init.sm5
-rw-r--r--sm/pyetc.sm20
-rw-r--r--sm/test_common.sm16
-rw-r--r--sm/test_dev.sm23
-rw-r--r--sm/test_import.sm12
-rw-r--r--sm/test_x.sm22
24 files changed, 579 insertions, 0 deletions
diff --git a/sm/A_astrolib.sm b/sm/A_astrolib.sm
new file mode 100644
index 0000000..9da7ffc
--- /dev/null
+++ b/sm/A_astrolib.sm
@@ -0,0 +1,5 @@
+IMPORT "init.sm"
+IMPORT "assemble_common.sm"
+IMPORT "assemble_astrolib.sm"
+IMPORT "build_astrolib.sm"
+
diff --git a/sm/A_cdbs.sm b/sm/A_cdbs.sm
new file mode 100644
index 0000000..f7b3c11
--- /dev/null
+++ b/sm/A_cdbs.sm
@@ -0,0 +1,2 @@
+IMPORT "init.sm"
+IMPORT "cdbs.sm"
diff --git a/sm/A_dev.sm b/sm/A_dev.sm
new file mode 100644
index 0000000..8ada106
--- /dev/null
+++ b/sm/A_dev.sm
@@ -0,0 +1,3 @@
+IMPORT "B_dev.sm"
+IMPORT "test_dev.sm"
+
diff --git a/sm/A_pyetc.sm b/sm/A_pyetc.sm
new file mode 100644
index 0000000..20be13d
--- /dev/null
+++ b/sm/A_pyetc.sm
@@ -0,0 +1 @@
+IMPORT "pyetc.sm"
diff --git a/sm/A_x.sm b/sm/A_x.sm
new file mode 100644
index 0000000..217f77d
--- /dev/null
+++ b/sm/A_x.sm
@@ -0,0 +1,11 @@
+IMPORT "B_x.sm"
+IMPORT "test_x.sm"
+
+TABLE assemble HOST arzach
+ CMD irafx_update RUN "/eng/ssb/auto/prog/irafx_update "
+ AFTER init/*
+
+ CMD irafx_age RUN "/eng/ssb/auto/prog/irafx_age.py"
+ AFTER irafx_update
+ AFTER OPT svnsync
+
diff --git a/sm/A_xb.sm b/sm/A_xb.sm
new file mode 100644
index 0000000..d8c1c7f
--- /dev/null
+++ b/sm/A_xb.sm
@@ -0,0 +1,2 @@
+IMPORT "B_x.sm"
+IMPORT "test_x.sm"
diff --git a/sm/B_dev.sm b/sm/B_dev.sm
new file mode 100644
index 0000000..8464322
--- /dev/null
+++ b/sm/B_dev.sm
@@ -0,0 +1,5 @@
+IMPORT "init.sm"
+IMPORT "assemble_common.sm"
+IMPORT "assemble_dev.sm"
+IMPORT "build_dev.sm"
+IMPORT "dist_dev.sm"
diff --git a/sm/B_x.sm b/sm/B_x.sm
new file mode 100644
index 0000000..a0183a7
--- /dev/null
+++ b/sm/B_x.sm
@@ -0,0 +1,5 @@
+IMPORT "init.sm"
+IMPORT "assemble_common.sm"
+IMPORT "assemble_x.sm"
+IMPORT "build_x.sm"
+IMPORT "dist_x.sm"
diff --git a/sm/assemble_astrolib.sm b/sm/assemble_astrolib.sm
new file mode 100644
index 0000000..16a1494
--- /dev/null
+++ b/sm/assemble_astrolib.sm
@@ -0,0 +1,6 @@
+TABLE assemble HOST arzach
+
+ CMD dev.astrolib RUN "assemble_astrolib"
+ AFTER init/*
+ AFTER svnsync
+
diff --git a/sm/assemble_common.sm b/sm/assemble_common.sm
new file mode 100644
index 0000000..03f36db
--- /dev/null
+++ b/sm/assemble_common.sm
@@ -0,0 +1,10 @@
+####################
+####################
+
+# arzach assembles all the source code
+TABLE assemble HOST arzach
+
+ CMD svnsync RUN "assemble_svnsync"
+ AFTER init/*
+ AFTER OPT irafx_update
+
diff --git a/sm/assemble_dev.sm b/sm/assemble_dev.sm
new file mode 100644
index 0000000..21af101
--- /dev/null
+++ b/sm/assemble_dev.sm
@@ -0,0 +1,19 @@
+# arzach assembles all the source code
+TABLE assemble HOST arzach
+
+ CMD dev.stsci_python RUN "assemble_stsci_python dev"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD dev.stsci_iraf RUN "assemble_stsci_iraf dev"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD dev.axe RUN "assemble_axe dev"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD dev.hstcal RUN "assemble_hstcal dev"
+ AFTER init/*
+ AFTER svnsync
+
diff --git a/sm/assemble_x.sm b/sm/assemble_x.sm
new file mode 100644
index 0000000..68089c7
--- /dev/null
+++ b/sm/assemble_x.sm
@@ -0,0 +1,22 @@
+# arzach assembles all the source code
+TABLE assemble HOST arzach
+
+ CMD x.stsci_python RUN "assemble_stsci_python x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.stsci_iraf RUN "assemble_stsci_iraf x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.axe RUN "assemble_axe x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.hstcal RUN "assemble_hstcal x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.irafx_age RUN "irafx_age.py"
+ AFTER init/*
+
diff --git a/sm/build_astrolib.sm b/sm/build_astrolib.sm
new file mode 100644
index 0000000..fdeb5de
--- /dev/null
+++ b/sm/build_astrolib.sm
@@ -0,0 +1,5 @@
+
+TABLE build HOST arzach
+ CMD dev.astrolib RUN "build_astrolib"
+ AFTER arzach:assemble/dev.astrolib
+
diff --git a/sm/build_dev.sm b/sm/build_dev.sm
new file mode 100644
index 0000000..7011d5a
--- /dev/null
+++ b/sm/build_dev.sm
@@ -0,0 +1,75 @@
+## TODO:
+## add builds on ssbwebv1 for those things that we actually care about
+
+####################
+####################
+
+# install stsci_python into default environment
+# build hstcal
+# - everywhere
+TABLE build HOST herbert thor arzach bond cadeau banana
+ CMD dev.py2.7 RUN "build_stsci_python dev 2.7"
+ AFTER init/*
+ AFTER *:assemble/dev.stsci_python
+ CMD dev.hstcal RUN "build_hstcal dev"
+ AFTER init/*
+ AFTER *:assemble/dev.hstcal
+
+# older python environments
+# - arzach only
+TABLE build HOST arzach
+ CMD dev.py2.6 RUN "build_stsci_python dev 2.6"
+ AFTER init/*
+ AFTER *:assemble/dev.stsci_python
+
+ CMD dev.py2.5 RUN "build_stsci_python dev 2.5"
+ AFTER init/*
+ AFTER *:assemble/dev.stsci_python
+
+# stsdas and friends
+# - 32 bit only
+TABLE build HOST herbert bond
+ CMD dev.axe RUN "build_axe dev"
+ AFTER init/*
+ AFTER *:assemble/dev.axe
+
+ CMD dev.stsci_iraf RUN "build_stsci_iraf dev"
+ AFTER init/*
+ AFTER *:assemble/dev.stsci_iraf
+ AFTER build/dev.axe
+
+ CMD dev.stsci_iraf_log RUN "build_stsci_iraf_log dev"
+ AFTER init/*
+ AFTER build/dev.stsci_iraf
+
+ CMD dev.stsci_iraf_help RUN "build_stsci_iraf_help dev"
+ AFTER init/*
+ AFTER build/dev.stsci_iraf
+
+
+# stsdas for 64 bit machines - get it from a related 32 bit system
+TABLE build HOST thor arzach
+ CMD dev.stsci_iraf_64hack RUN "build_stsci_iraf_64hack dev herbert"
+ AFTER herbert:build/dev.stsci_iraf*
+
+TABLE build HOST cadeau banana
+ CMD dev.stsci_iraf_64hack RUN "build_stsci_iraf_64hack dev bond"
+ AFTER bond:build/dev.stsci_iraf*
+
+# stsci_python documentation
+# - one machine only
+TABLE build HOST arzach
+ CMD dev.stsci_python_sphinxdocs RUN "build_sphinxdocs dev 2.7"
+ AFTER build/dev.py2.7
+
+# old epydoc documentation - only works on thor; hope we can get rid of
+# epydoc sooner than we have to do anything about this.
+TABLE build HOST thor
+ CMD dev.stsci_python_epydoc RUN "/thor/data2/iraf/epydoc_test/nightly"
+ AFTER build/dev.py2.7
+
+# stamp the IRAF banner file when the builds are complete
+TABLE stamp HOST herbert thor arzach bond cadeau banana
+ CMD dev RUN "build_stamp dev"
+ AFTER build/*
+
diff --git a/sm/build_x.sm b/sm/build_x.sm
new file mode 100644
index 0000000..43377f7
--- /dev/null
+++ b/sm/build_x.sm
@@ -0,0 +1,80 @@
+## TODO:
+## add builds on ssbwebv1 for those things that we actually care about
+
+####################
+####################
+
+# arzach assembles all the source code
+TABLE assemble HOST arzach
+
+ CMD svnsync RUN "assemble_svnsync"
+ AFTER init/*
+ AFTER OPT irafx_update
+
+ CMD x.stsci_python RUN "assemble_stsci_python x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.stsci_iraf RUN "assemble_stsci_iraf x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.axe RUN "assemble_axe x"
+ AFTER init/*
+ AFTER svnsync
+
+ CMD x.hstcal RUN "assemble_hstcal x"
+ AFTER init/*
+ AFTER svnsync
+
+
+####################
+####################
+
+# install stsci_python into default environment
+# build hstcal
+# - everywhere
+TABLE build HOST herbert thor arzach bond cadeau banana
+ CMD x.py2.7 RUN "build_stsci_python x 2.7"
+ AFTER init/*
+ AFTER *:assemble/x.stsci_python
+ CMD x.hstcal RUN "build_hstcal x"
+ AFTER init/*
+ AFTER *:assemble/x.hstcal
+
+# stsdas and friends
+# - 32 bit only
+TABLE build HOST herbert bond
+ CMD x.axe RUN "build_axe x"
+ AFTER init/*
+ AFTER *:assemble/x.axe
+
+ CMD x.stsci_iraf RUN "build_stsci_iraf x"
+ AFTER init/*
+ AFTER *:assemble/x.stsci_iraf
+ AFTER build/x.axe
+
+ CMD x.stsci_iraf_log RUN "build_stsci_iraf_log x"
+ AFTER init/*
+ AFTER build/x.stsci_iraf
+
+ CMD x.stsci_iraf_help RUN "build_stsci_iraf_help x"
+ AFTER init/*
+ AFTER build/x.stsci_iraf
+
+
+# stsdas for 64 bit machines - get it from a related 32 bit system
+TABLE build HOST thor arzach
+ CMD x.stsci_iraf_64hack RUN "build_stsci_iraf_64hack x herbert"
+ AFTER herbert:build/x.stsci_iraf*
+
+TABLE build HOST cadeau banana
+ CMD x.stsci_iraf_64hack RUN "build_stsci_iraf_64hack x bond"
+ AFTER bond:build/x.stsci_iraf*
+
+
+# stamp the IRAF banner file when the builds are complete
+TABLE stamp HOST herbert thor arzach bond cadeau banana
+ CMD x RUN "build_stamp x"
+ AFTER build/*
+
diff --git a/sm/cdbs.sm b/sm/cdbs.sm
new file mode 100644
index 0000000..178ae0b
--- /dev/null
+++ b/sm/cdbs.sm
@@ -0,0 +1,13 @@
+TABLE cdbs HOST bond cadeau banana
+ CMD local_copy RUN "cdbs_copy"
+ AFTER init/*
+
+TABLE cdbs HOST bond
+ CMD mac_package RUN "/Users/iraf/daily_build/mac_package/make_packages cdbs"
+ AFTER cdbs/local_copy
+
+TABLE cdbs HOST arzach
+ CMD ftp RUN "cdbs_arc"
+ AFTER init/*
+
+
diff --git a/sm/dist_dev.sm b/sm/dist_dev.sm
new file mode 100644
index 0000000..1fd933b
--- /dev/null
+++ b/sm/dist_dev.sm
@@ -0,0 +1,106 @@
+####################
+####################
+
+# regular distributions
+
+TABLE distribute HOST herbert thor arzach
+ CMD dev.iraf RUN "synctool - irafdev"
+ AFTER stamp/dev
+ CMD dev.pyssg RUN "synctool - pyssgdev"
+ AFTER stamp/dev
+ CMD dev.stsci_iraf RUN "synctool - stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD dev.hstcal RUN "synctool - hstcaldev"
+ AFTER stamp/dev
+ CMD dev.motd RUN "synctool - irafdev/iraf/unix/hlib/motd"
+ AFTER distribute/dev.iraf
+
+TABLE distribute HOST bond cadeau banana
+ CMD irafdev.pkg RUN "cd $HOME/daily_build/mac_package; ./clean ; ./build dev " AFTER stamp/dev
+ CMD irafdev.dmg RUN "cd $HOME/daily_build/mac_package; ./distribute dev -" AFTER irafdev.pkg
+
+# wads of special cases
+
+# jwcalibdev has local disk - some day it may do its own builds
+TABLE distribute HOST arzach
+ CMD jwcalibdev.iraf RUN "synctool jwcalibdev: irafdev"
+ AFTER stamp/dev
+ CMD jwcalibdev.pyssg RUN "synctool jwcalibdev: pyssgdev"
+ AFTER stamp/dev
+ CMD jwcalibdev.stsci_iraf RUN "synctool jwcalibdev: stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD jwcalibdev.hstcal RUN "synctool jwcalibdev: hstcaldev"
+ AFTER stamp/dev
+ CMD jwcalibdev.motd RUN "synctool jwcalibdev: irafdev/iraf/unix/hlib/motd"
+ AFTER jwcalibdev.iraf
+
+# goods - has RHE 5 only now
+
+TABLE distribute_other HOST arzach
+ CMD goods.iraf RUN "synctool goods12: irafdev"
+ AFTER stamp/dev
+ CMD goods.pyssg RUN "synctool goods12: pyssgdev"
+ AFTER stamp/dev
+ CMD goods.stsci_iraf RUN "synctool goods12: stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD goods.hstcal RUN "synctool goods12: hstcaldev"
+ AFTER stamp/dev
+ CMD goods.motd RUN "synctool goods12: irafdev/iraf/unix/hlib/motd"
+ AFTER goods.iraf
+
+# witserv1 - who are these guys?
+
+TABLE distribute_other HOST arzach
+ CMD witserv1.iraf RUN "synctool witserv1: irafdev"
+ AFTER stamp/dev
+ CMD witserv1.pyssg RUN "synctool witserv1: pyssgdev"
+ AFTER stamp/dev
+ CMD witserv1.stsci_iraf RUN "synctool witserv1: stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD witserv1.hstcal RUN "synctool witserv1: hstcaldev"
+ AFTER stamp/dev
+ CMD witserv1.motd RUN "synctool witserv1: irafdev/iraf/unix/hlib/motd"
+ AFTER witserv1.iraf
+
+# dmsinsvm - have a pipeline and irafx/irafdev on the same machine for INS
+
+TABLE distribute_other HOST arzach
+ CMD dmsinsvm.iraf RUN "synctool dmsinsvm: irafdev"
+ AFTER stamp/dev
+ CMD dmsinsvm.pyssg RUN "synctool dmsinsvm: pyssgdev"
+ AFTER stamp/dev
+ CMD dmsinsvm.stsci_iraf RUN "synctool dmsinsvm: stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD dmsinsvm.hstcal RUN "synctool dmsinsvm: hstcaldev"
+ AFTER stamp/dev
+ CMD dmsinsvm.motd RUN "synctool dmsinsvm: irafdev/iraf/unix/hlib/motd"
+ AFTER dmsinsvm.iraf
+
+# UDF - another funded project with their own machines
+
+TABLE distribute_other HOST thor
+ CMD udf1.iraf RUN "synctool udf1: irafdev"
+ AFTER stamp/dev
+ CMD udf1.pyssg RUN "synctool udf1: pyssgdev"
+ AFTER stamp/dev
+ CMD udf1.stsci_iraf RUN "synctool udf1: stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD udf1.hstcal RUN "synctool udf1: hstcaldev"
+ AFTER stamp/dev
+ CMD udf1.motd RUN "synctool udf1: irafdev/iraf/unix/hlib/motd"
+ AFTER udf1.iraf
+
+# royal - a beowulf cluster
+
+TABLE distribute_other HOST thor
+ CMD royal.iraf RUN "synctool royal: irafdev"
+ AFTER stamp/dev
+ CMD royal.pyssg RUN "synctool royal: pyssgdev"
+ AFTER stamp/dev
+ CMD royal.stsci_iraf RUN "synctool royal: stsci_iraf_dev"
+ AFTER stamp/dev
+ CMD royal.hstcal RUN "synctool royal: hstcaldev"
+ AFTER stamp/dev
+ CMD royal.motd RUN "synctool royal: irafdev/iraf/unix/hlib/motd"
+ AFTER royal.iraf
+
diff --git a/sm/dist_x.sm b/sm/dist_x.sm
new file mode 100644
index 0000000..c18755a
--- /dev/null
+++ b/sm/dist_x.sm
@@ -0,0 +1,111 @@
+
+# we can make everything after this
+
+TABLE x_distribute HOST herbert thor arzach bond cadeau banana
+ CMD gate RUN "exit 0"
+ AFTER init/*
+ AFTER stamp/*
+
+# regular distributions
+
+TABLE x_distribute HOST herbert thor arzach
+ CMD x.iraf RUN "synctool - irafx"
+ AFTER x_distribute/gate
+ CMD x.pyssg RUN "synctool - pyssgx"
+ AFTER x_distribute/gate
+ CMD x.stsci_iraf RUN "synctool - stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD x.hstcal RUN "synctool - hstcalx"
+ AFTER x_distribute/gate
+ CMD x.motd RUN "synctool - irafx/iraf/unix/hlib/motd"
+ AFTER x_distribute/x.iraf
+
+TABLE x_distribute HOST bond cadeau banana
+ CMD irafx.pkg RUN "cd $HOME/daily_build/mac_package; ./clean ; ./build x " AFTER x_distribute/gate
+ CMD irafx.dmg RUN "cd $HOME/daily_build/mac_package; ./distribute x -" AFTER irafx.pkg
+
+# wads of special cases
+
+# jwcalibdev has local disk - some day it may do its own builds
+TABLE x_distribute HOST arzach
+ CMD x.jwcalibdev.iraf RUN "synctool jwcalibdev: irafx"
+ AFTER x_distribute/gate
+ CMD x.jwcalibdev.pyssg RUN "synctool jwcalibdev: pyssgx"
+ AFTER x_distribute/gate
+ CMD x.jwcalibdev.stsci_iraf RUN "synctool jwcalibdev: stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD x.jwcalibdev.hstcal RUN "synctool jwcalibdev: hstcalx"
+ AFTER x_distribute/gate
+ CMD x.jwcalibdev.motd RUN "synctool jwcalibdev: irafx/iraf/unix/hlib/motd"
+ AFTER x.jwcalibdev.iraf
+
+# goods - has RHE 5 only now
+
+TABLE x_distribute_other HOST arzach
+ CMD goods.iraf RUN "synctool goods12: irafx"
+ AFTER x_distribute/gate
+ CMD goods.pyssg RUN "synctool goods12: pyssgx"
+ AFTER x_distribute/gate
+ CMD goods.stsci_iraf RUN "synctool goods12: stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD goods.hstcal RUN "synctool goods12: hstcalx"
+ AFTER x_distribute/gate
+ CMD goods.motd RUN "synctool goods12: irafx/iraf/unix/hlib/motd"
+ AFTER goods.iraf
+
+# witserv1 - who are these guys?
+
+TABLE x_distribute_other HOST arzach
+ CMD witserv1.iraf RUN "synctool witserv1: irafx"
+ AFTER x_distribute/gate
+ CMD witserv1.pyssg RUN "synctool witserv1: pyssgx"
+ AFTER x_distribute/gate
+ CMD witserv1.stsci_iraf RUN "synctool witserv1: stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD witserv1.hstcal RUN "synctool witserv1: hstcalx"
+ AFTER x_distribute/gate
+ CMD witserv1.motd RUN "synctool witserv1: irafx/iraf/unix/hlib/motd"
+ AFTER witserv1.iraf
+
+# dmsinsvm - have a pipeline and irafx/irafdev on the same machine for INS
+
+TABLE x_distribute_other HOST arzach
+ CMD dmsinsvm.iraf RUN "synctool dmsinsvm: irafx"
+ AFTER x_distribute/gate
+ CMD dmsinsvm.pyssg RUN "synctool dmsinsvm: pyssgx"
+ AFTER x_distribute/gate
+ CMD dmsinsvm.stsci_iraf RUN "synctool dmsinsvm: stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD dmsinsvm.hstcal RUN "synctool dmsinsvm: hstcalx"
+ AFTER x_distribute/gate
+ CMD dmsinsvm.motd RUN "synctool dmsinsvm: irafx/iraf/unix/hlib/motd"
+ AFTER dmsinsvm.iraf
+
+# UDF - another funded project with their own machines
+
+TABLE x_distribute_other HOST thor
+ CMD udf1.iraf RUN "synctool udf1: irafx"
+ AFTER x_distribute/gate
+ CMD udf1.pyssg RUN "synctool udf1: pyssgx"
+ AFTER x_distribute/gate
+ CMD udf1.stsci_iraf RUN "synctool udf1: stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD udf1.hstcal RUN "synctool udf1: hstcalx"
+ AFTER x_distribute/gate
+ CMD udf1.motd RUN "synctool udf1: irafx/iraf/unix/hlib/motd"
+ AFTER udf1.iraf
+
+# royal - a beowulf cluster
+
+TABLE x_distribute_other HOST thor
+ CMD royal.iraf RUN "synctool royal: irafx"
+ AFTER x_distribute/gate
+ CMD royal.pyssg RUN "synctool royal: pyssgx"
+ AFTER x_distribute/gate
+ CMD royal.stsci_iraf RUN "synctool royal: stsci_iraf_x"
+ AFTER x_distribute/gate
+ CMD royal.hstcal RUN "synctool royal: hstcalx"
+ AFTER x_distribute/gate
+ CMD royal.motd RUN "synctool royal: irafx/iraf/unix/hlib/motd"
+ AFTER royal.iraf
+
diff --git a/sm/init.sm b/sm/init.sm
new file mode 100644
index 0000000..b19731f
--- /dev/null
+++ b/sm/init.sm
@@ -0,0 +1,5 @@
+TABLE init HOST banana bond cadeau arzach thor herbert ssb aten jwcalibdev etcbrady
+ CMD sendscripts LOCAL "/eng/ssb/auto/steuermann_scripts/init_sendscripts %(hostname)s %(workdir)s"
+ CMD sysstat RUN "sysstat"
+ AFTER sendscripts
+
diff --git a/sm/pyetc.sm b/sm/pyetc.sm
new file mode 100644
index 0000000..d1b4419
--- /dev/null
+++ b/sm/pyetc.sm
@@ -0,0 +1,20 @@
+####################
+####################
+
+TABLE pyetc HOST etcbrady
+
+ CMD trunk RUN "/data1/nightly/trunk/test-ppsetc -d trunk "
+ AFTER init/*
+
+ CMD refactored RUN "/data1/nightly/refactored/test-ppsetc -d refactored "
+ AFTER trunk
+ AFTER init/*
+
+ CMD jwst RUN "/data1/nightly/jwpetc_dev/test-ppsetc -d"
+ AFTER refactored
+ AFTER init/*
+
+ CMD rt RUN "/data1/nightly/rt/rt.csh 7"
+ AFTER jwst
+ AFTER init/*
+
diff --git a/sm/test_common.sm b/sm/test_common.sm
new file mode 100644
index 0000000..50b04cf
--- /dev/null
+++ b/sm/test_common.sm
@@ -0,0 +1,16 @@
+TABLE test_setup HOST herbert thor arzach bond cadeau banana
+ CMD okify RUN "test_okify"
+ AFTER distribute/*
+
+# each of test_run_* says AFTER test_setup/*
+
+TABLE test_final HOST ssb
+ CMD import RUN "test_import daily"
+ AFTER *:test_run_*/*
+ CMD notify RUN "test_notify daily"
+ AFTER import
+ CMD sqlite_watch RUN "test_sqlite_watch"
+ AFTER import
+ CMD mysql_watch RUN "test_mysql_watch"
+ AFTER import
+
diff --git a/sm/test_dev.sm b/sm/test_dev.sm
new file mode 100644
index 0000000..7d2b7ea
--- /dev/null
+++ b/sm/test_dev.sm
@@ -0,0 +1,23 @@
+####################
+####################
+
+IMPORT "test_common.sm"
+
+
+# This structure is meant to serialize the regtests so that nothing else
+# is going on at the same time. The regtests can consume all the CPUs.
+TABLE test_run_dev HOST herbert thor arzach bond cadeau banana
+ CMD test2.7 RUN "test_rt dev 2.7"
+ AFTER test_setup/okify
+ AFTER test_setup/*
+
+TABLE test_run_dev HOST arzach
+ CMD test2.6 RUN "test_rt dev 2.6"
+ AFTER test2.7
+ CMD test2.5 RUN "test_rt dev 2.5"
+ AFTER test2.6
+
+TABLE test_run_dev HOST thor
+ CMD contact RUN "test_contact"
+ AFTER test2.7
+
diff --git a/sm/test_import.sm b/sm/test_import.sm
new file mode 100644
index 0000000..6238aba
--- /dev/null
+++ b/sm/test_import.sm
@@ -0,0 +1,12 @@
+####################
+####################
+
+TABLE test_finale HOST ssb
+ CMD dev.import RUN "test_import daily"
+ AFTER *:test_run_*/*
+ CMD dev.notify RUN "test_notify daily"
+ AFTER dev.import
+ CMD dev.sqlite_watch RUN "test_sqlite_watch"
+ AFTER dev.import
+ CMD dev.mysql_watch RUN "test_mysql_watch"
+ AFTER dev.import
diff --git a/sm/test_x.sm b/sm/test_x.sm
new file mode 100644
index 0000000..be22da3
--- /dev/null
+++ b/sm/test_x.sm
@@ -0,0 +1,22 @@
+####################
+####################
+IMPORT "test_common.sm"
+
+# This structure is meant to serialize the regtests so that nothing else
+# is going on at the same time. The regtests can consume all the CPUs.
+TABLE test_run_x HOST herbert thor arzach bond cadeau banana
+ CMD test2.7 RUN "test_rt x 2.7"
+ AFTER test_setup/okify
+ AFTER test_setup/*
+ AFTER OPT test_run_dev/*
+
+TABLE test_run_x HOST arzach
+ CMD test2.6 RUN "test_rt x 2.6"
+ AFTER test2.7
+ CMD test2.5 RUN "test_rt x 2.5"
+ AFTER test2.6
+
+TABLE test_run_x HOST thor
+ CMD contact RUN "test_contact"
+ AFTER test2.7
+