#!/bin/sh
##
##  wcaa.sh
##
##  Created by Patrick Middleton on 16/04/2007.
##  Copyright (c) 2007 OneStep Solution Plc.  All rights reserved.
##
##  Amendments 15 May 2007 to use /usr/bin/zip where available, /usr/bin/jar where not

PID=$$
find . -type d -name .svn -print -prune > wcaa-svn-list.txt
sed 's/\.svn$//' < wcaa-svn-list.txt | sort > wcaa-list.txt
rm -f wcaa.zip
if [ -f /usr/bin/unzip -a -x /usr/bin/unzip ]
then
  zip -q -r wcaa.zip -@ < wcaa-svn-list.txt
elif [ -f /usr/bin/jar -a -x /usr/bin/jar ]
then
  cp wcaa-svn-list.txt /private/tmp/wcaa-$PID.sh
  ex /private/tmp/wcaa-$PID.sh <<+
1,\$s/\.svn\/.*/.svn\//
1,\$ ! sort -u
1,\$s/^/jar uMf wcaa.zip /
1s/jar uMf /jar cMf /
w!
q!
+
  sh /private/tmp/wcaa-$PID.sh
else
  echo neither /usr/bin/unzip nor /usr/bin/jar available
fi

cat <<+ > /private/tmp/wcaa-jar-$PID.awk
BEGIN {
 printf("#!/bin/sh\n")
 printf("# wcaa-jar-restore.sh, for use on MacOSX 10.1.5\n")
 printf("# uses wcaa.zip and /usr/bin/jar\n")
}

{
 line = \$0
 if (length(line)) {
  line2 = line
  sub("^\.\/", "", line2)
  printf("if [ -d '%s' -a ! -d '%s.svn' ]; then echo wcaa restoring '%s.svn' ; jar xf wcaa.zip '%s.svn/' ; fi\n", line, line, line, line2)
 }
}

END {
 print("# done\n")
}
+

cat <<+ > /private/tmp/wcaa-zip-$PID.awk
BEGIN {
 printf("#!/bin/sh\n")
 printf("# wcaa-zip-restore.sh, for use on MacOSX 10.4.x\n")
 printf("# uses wcaa.zip and /usr/bin/unzip\n")
}

{
 line = \$0
 if (length(line)) {
  line2 = line
  sub("^\\.\\/", "", line2)
  printf("if [ -d '%s' -a ! -d '%s.svn' ]; then echo wcaa restoring '%s.svn' ; unzip wcaa.zip '%s.svn/*' ; fi\n", line, line, line, line2)
 }

}

END {
 print("# done\n")
}
+

awk -f /private/tmp/wcaa-zip-$PID.awk wcaa-list.txt > wcaa-zip-restore.sh
awk -f /private/tmp/wcaa-jar-$PID.awk wcaa-list.txt > wcaa-jar-restore.sh

cat <<+ > wcaa-restore.sh
#!/bin/sh

if [ -f /usr/bin/unzip -a -x /usr/bin/unzip ]
then
  ./wcaa-zip-restore.sh
elif [ -f /usr/bin/jar -a -x /usr/bin/jar ]
then
  ./wcaa-jar-restore.sh
else
  echo neither /usr/bin/unzip nor /usr/bin/jar available
fi
+

# rm -f /private/tmp/wcaa-$PID.* wcaa-svn-list.txt wcaa-list.txt
chmod 0755 wcaa-restore.sh wcaa-zip-restore.sh wcaa-jar-restore.sh

