]> git.phdru.name Git - phdru.name/cgi-bin/blog-ru/search-tags.git/blobdiff - update
Copy generated files and compile bytecode files in cgi
[phdru.name/cgi-bin/blog-ru/search-tags.git] / update
diff --git a/update b/update
index 9d996d81a2ac9d24abfe235dc88c7097d8abf1a9..4f62f6407b123ad8a710bab2861a3d3160296499 100755 (executable)
--- a/update
+++ b/update
@@ -1,8 +1,38 @@
 #! /bin/sh
 
-current="`git config --get remote.current.url`" &&
+current="`git config --get --path remote.current.url`"
+origin="`git config --get --path remote.origin.url`"
 
-git pull --ff-only current master && git push web &&
+if [ -n "$origin" ]; then
+   if [ -n "$current" ]; then
+      echo "UNKNOWN ERROR"
+   else
+      echo "This script must be run in the origin directory: $origin"
+   fi >&2
+   exit 1
+elif [ -z "$current" ]; then
+   echo "UNKNOWN ERROR" >&2
+   exit 1
+fi
 
-cd "$current" &&
-exec git pull origin
+git pull --ff-only current master &&
+
+web="`git config --get --path remote.web.url`" &&
+[ -n "$web" ] && git push web
+
+# Copy templates and generated files with timestamps to avoid rebuilding
+rsync -ahP "$current"/html/html.py "$current"/html/html.tmpl \
+           "$current"/html/redirect.py "$current"/html/redirect.tmpl html &&
+
+# Save files generated by yacc
+rsync -ahP "$current"/parser.out "$current"/parsetab.py . &&
+
+cgi="`git config --get --path remote.cgi.url`" &&
+if [ -n "$cgi" ]; then
+   umask 022 && cd "$cgi" && git pull origin &&
+   rsync -ahP "$current"/html/html.py "$current"/html/html.tmpl \
+              "$current"/html/redirect.py "$current"/html/redirect.tmpl html &&
+   compyleall
+fi &&
+
+cd "$current" && exec git pull origin