| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -e -o pipefail | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 14:03:05 -07:00
										 |  |  | cd `dirname $0`/.. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | BASE="public/docs/ts" | 
					
						
							|  |  |  | LATEST="$BASE/latest" | 
					
						
							|  |  |  | CACHE="$BASE/_cache" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FILES="
 | 
					
						
							|  |  |  | guide/architecture.jade | 
					
						
							|  |  |  | guide/attribute-directives.jade | 
					
						
							|  |  |  | guide/component-styles.jade | 
					
						
							|  |  |  | guide/dependency-injection.jade | 
					
						
							|  |  |  | guide/displaying-data.jade | 
					
						
							|  |  |  | guide/hierarchical-dependency-injection.jade | 
					
						
							| 
									
										
										
										
											2016-11-22 20:07:16 +08:00
										 |  |  | guide/index.jade | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | guide/lifecycle-hooks.jade | 
					
						
							|  |  |  | guide/pipes.jade | 
					
						
							|  |  |  | guide/security.jade | 
					
						
							|  |  |  | guide/server-communication.jade | 
					
						
							|  |  |  | guide/structural-directives.jade | 
					
						
							|  |  |  | guide/template-syntax.jade | 
					
						
							| 
									
										
										
										
											2016-08-12 11:14:44 -07:00
										 |  |  | glossary.jade | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | quickstart.jade | 
					
						
							| 
									
										
										
										
											2016-11-22 20:07:16 +08:00
										 |  |  | _quickstart_repo.jade | 
					
						
							|  |  |  | tutorial/index.jade | 
					
						
							| 
									
										
										
										
											2016-08-12 13:39:17 -07:00
										 |  |  | tutorial/toh-pt5.jade | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | tutorial/toh-pt6.jade"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function cacheRefresh() { | 
					
						
							|  |  |  |     local FILE_PATTERN="*" | 
					
						
							|  |  |  |     if [[ -n "$1" ]]; then | 
					
						
							|  |  |  |         FILE_PATTERN="$1" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |         echo "Argument missing: specify shell file glob pattern of files to be refreshed." | 
					
						
							|  |  |  |         exit 1; | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     local allFound=true; | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     for f in $FILES; do | 
					
						
							|  |  |  |         local srcPath="$LATEST/$f"; | 
					
						
							|  |  |  |         local destPath="$CACHE/$f"; | 
					
						
							|  |  |  |         local destDir=`dirname $destPath`; | 
					
						
							|  |  |  |         if [[ -e $srcPath ]]; then | 
					
						
							|  |  |  |             [[ -d "$destDir" ]] || (set -x; mkdir $destDir); | 
					
						
							|  |  |  |             case "$f" in | 
					
						
							| 
									
										
										
										
											2016-08-26 16:36:13 -07:00
										 |  |  |                 (*$FILE_PATTERN*) | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  |                     (set -x; cp $srcPath $destPath);; | 
					
						
							|  |  |  |                 (*) | 
					
						
							|  |  |  |                     echo "SKIPPED $f";; | 
					
						
							|  |  |  |             esac | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |             echo Cannot find $srcPath | 
					
						
							|  |  |  |             allFound=false; | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     [[ $allFound ]] || exit 1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-26 16:36:13 -07:00
										 |  |  | function cacheDiffSummary() { | 
					
						
							| 
									
										
										
										
											2016-11-22 20:07:16 +08:00
										 |  |  |     diff -qr -x "_util*.jade" "$CACHE/" "$LATEST/" | \
 | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  |         grep -v "^Only in" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-26 16:36:13 -07:00
										 |  |  | function cacheDiff() { | 
					
						
							|  |  |  |     local FILES="*$1*" | 
					
						
							|  |  |  |     cd $CACHE; | 
					
						
							|  |  |  |     # List files | 
					
						
							|  |  |  |     find . -name "$FILES" ! -name "*~" -exec diff -q {} ../latest/{} \; | 
					
						
							|  |  |  |     # Show differences | 
					
						
							|  |  |  |     find . -name "$FILES" ! -name "*~" -exec diff    {} ../latest/{} \; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | function usage() { | 
					
						
							| 
									
										
										
										
											2016-08-30 14:03:05 -07:00
										 |  |  |     echo "Usage: cache.sh [options]" | 
					
						
							|  |  |  |     echo "  (-ds|--diff-summary)  list names of cache files that differ from ts/latest" | 
					
						
							|  |  |  |     echo "  (-d|--diff) pat       diff cache and latest subdirectories" | 
					
						
							|  |  |  |     echo "  (-l|--list)           list files subject to caching" | 
					
						
							|  |  |  |     echo "  (-r|--refresh) pat    refresh files in cache matching pattern" | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | case "$1" in | 
					
						
							| 
									
										
										
										
											2016-08-26 16:36:13 -07:00
										 |  |  |     (-ds|--diff-summary)  shift; cacheDiffSummary $@;; | 
					
						
							|  |  |  |     (-d|--diff)           shift; cacheDiff $@;; | 
					
						
							| 
									
										
										
										
											2016-08-30 14:03:05 -07:00
										 |  |  |     (-l|--list)           shift; printf "$FILES\n\n";; | 
					
						
							|  |  |  |     (-r|--refresh)        shift; cacheRefresh $@;; | 
					
						
							| 
									
										
										
										
											2016-08-26 16:36:13 -07:00
										 |  |  |     (*)   usage; | 
					
						
							| 
									
										
										
										
											2016-08-11 14:39:16 -07:00
										 |  |  | esac |