[LON-CAPA-cvs] cvs: loncom /build Makefile

harris41 lon-capa-cvs@mail.lon-capa.org
Wed, 06 Feb 2002 22:41:47 -0000


harris41		Thu Feb  7 03:41:47 2002 EDT

  Modified files:              
    /loncom/build	Makefile 
  Log:
  supporting ssh-sudo-lpml-xfml-piml management of files and processes
  across a network of computers; it's alpha but works surprisingly well
  
  
Index: loncom/build/Makefile
diff -u loncom/build/Makefile:1.65 loncom/build/Makefile:1.66
--- loncom/build/Makefile:1.65	Tue Feb  5 06:49:39 2002
+++ loncom/build/Makefile	Thu Feb  7 03:41:47 2002
@@ -1,13 +1,20 @@
 # The LearningOnline Network with CAPA
 
 # Scott Harrison
-# $Id: Makefile,v 1.65 2002/02/05 01:49:39 harris41 Exp $
+# $Id: Makefile,v 1.66 2002/02/06 22:41:47 harris41 Exp $
 
 DIST="default"
 CATEGORY="development"
 SOURCE="../.."
 TARGET=""
 NORESTORECONF="0"
+HOSTNAME=""
+LAUNCH=| perl
+OUTSTREAM=>
+SAVE=program.pl.$(TIMESTAMP)
+LAUNCHSAVE=$(OUTSTREAM) $(SAVE)
+METAMTARGET=""
+MTARGET=""
 
 help: 
 	@echo "*** You need to specify a valid target ***"
@@ -73,6 +80,10 @@
 	     exit 1; \
 	fi
 
+NET_hosts_tab:
+	make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \
+	MTARGET="hosts_tab" HOSTNAME="$(HOSTNAME)" lpmladm
+
 hosts_tab: TEST_hosts_tab
 	cat ../../doc/loncapafiles/loncapafiles.lpml | \
 	perl xfml_parse.pl ../../doc/loncapafiles/valid_hosts.xfml | \
@@ -80,11 +91,42 @@
 	perl xfml_parse.pl ../../doc/loncapafiles/no_links.xfml | \
 	perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \
 	"$(TARGET)" > Makefile.install
+	make -f Makefile.install directories
 	make -f Makefile.install files
 	@echo "If hosts.tab has changed, restart httpd and loncontrol:"
 	@echo "   /etc/rc.d/init.d/httpd restart"
 	@echo "   /etc/rc.d/init.d/loncontrol restart"
 
+lpmladm:
+	@if (test $(METAMTARGET) = "TRANSPORT"); then \
+		echo "Transporting to $(HOSTNAME)"; \
+		sudo make DIST=$(DIST) CATEGORY=$(CATEGORY) \
+		SOURCE="$(SOURCE)" \
+		TARGET="lpmladm.$(TIMESTAMP)" \
+		NORESTORECONF="$(NORESTORECONF)" "$(MTARGET)"; \
+		cd lpmladm.$(TIMESTAMP); \
+		sudo tar czvf ../tarball$(TIMESTAMP).tar.gz .; \
+		cd ..; scp tarball$(TIMESTAMP).tar.gz \
+		lpmladm@$(HOSTNAME):~/tarball$(TIMESTAMP).tar.gz; \
+		ssh lpmladm@$(HOSTNAME) sudo mv tarball$(TIMESTAMP).tar.gz /; \
+		ssh lpmladm@$(HOSTNAME) sudo tar -x -z -v -C / \
+		-p --same-owner -f \
+		/tarball$(TIMESTAMP).tar.gz; \
+		ssh lpmladm@$(HOSTNAME) sudo rm -f \
+		/tarball$(TIMESTAMP).tar.gz; \
+	elif (test $(METAMTARGET) = "LAUNCH"); then \
+		echo "Launching process on $(HOSTNAME)"; \
+		LAUNCHSAVE=$(OUTSTREAM) $(SAVE); \
+		make DIST=$(DIST) CATEGORY=$(CATEGORY) SOURCE="$(SOURCE)" \
+		TARGET="$(TARGET)" NORESTORECONF="$(NORESTORECONF)" \
+		LAUNCH="$(LAUNCHSAVE)" "$(MTARGET)"; \
+		scp $(SAVE) lpmladm@$(HOSTNAME):~/$(SAVE); \
+		ssh lpmladm@$(HOSTNAME) sudo perl $(SAVE); \
+		ssh lpmladm@$(HOSTNAME) sudo rm -f $(SAVE); \
+	else \
+		echo "**** ERROR **** Incorrect METAMTARGET"; \
+	fi
+
 HTML:
 	install -d HTML
 	cp ../../doc/loncapafiles/*.gif HTML
@@ -145,9 +187,13 @@
 		cat WARNINGS; \
 	fi
 
+NET_webserverconf:
+	make TIMESTAMP=`date +"%s"` METAMTARGET="LAUNCH" \
+	MTARGET="webserverconf" HOSTNAME="$(HOSTNAME)" lpmladm
+
 webserverconf:
 	cat ../../doc/loncapafiles/webserver.piml | \
-	perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" | perl
+	perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH)
 
 postinstall:
 	make webserverconf
@@ -301,3 +347,5 @@
 	rm -f setup_rpm_file_list.txt
 	rm -f docs.tar.gz
 	rm -Rf docs
+	rm -f program.pl*
+	rm -Rf lpmladm.*