#! /bin/sh
### update-sdsu-sereno -- update sereno on SDSU webserver from UCSD w/linux wget
# 04 Dec 2024 -- 01: initial hack
# 10 Dec 2024 -- 02: also update ~/public_html/sereno/index.html
# 19 Dec 2024 -- 03: fix cereb dir bug
# 10 Feb 2025 -- 04: update fsaverage-labels dir, fsaverage additions files
# 08 Apr 2025 -- 05: update www.cogsci.ucsd.edu .tmp/dist in data/README.txt
# 27 Apr 2025 -- 06: arg to select update subset (csurf/cereb/fsavg/sereno/all)
# 25 Sep 2025 -- 07: update csurf updates EMAIL-prev

### current official distro URL
pagescsurf=https://pages.ucsd.edu/~msereno/csurf

### src
srcloc=src
#srcloc=../.tmp/.tmp2/

### update-target directory
#csurfdir=~/public_html/csurf/tmp/zz-test   # debug/test on UCSD linux
csurfdir=~/public_html/sereno/csurf         # rohancp linux csurf dir
cerebdir=~/public_html/sereno/cereb         # rohancp linux cereb dir
serenodir=~/public_html/sereno              # rohancp linux sereno homepage

### help, arg
if [ ! $# -eq 1 ]; then
  echo ""
  echo "use: update-sdsu-sereno <action>"
  echo ""
  echo "  [update sereno dir on SDSU rohancp webserver from UCSD w/linux wget]"
  echo ""
  echo "  actions:"
  echo "    csurf  --  get latest-dated csurf distribution (and src)"
  echo "    cereb  --  update files in sereno/cereb/updates"
  echo "    fsavg  --  update fsaverage-labels and fsaverage-ADDITIONS.tgz"
  echo "    sereno --  update sereno homepage"
  echo "    all    --  all of the above"
  echo ""
  exit
fi
if [ "$1" = "csurf" ]; then
  update_csurf=1
  update_cereb=0
  update_fsavg=0
  update_sereno=0
elif [ "$1" = "cereb" ]; then
  update_csurf=0
  update_cereb=1
  update_fsavg=0
  update_sereno=0
elif [ "$1" = "fsavg" ]; then
  update_csurf=0
  update_cereb=0
  update_fsavg=1
  update_sereno=0
elif [ "$1" = "sereno" ]; then
  update_csurf=0
  update_cereb=0
  update_fsavg=0
  update_sereno=1
elif [ "$1" = "all" ]; then
  update_csurf=1
  update_cereb=1
  update_fsavg=1
  update_sereno=1
else
  echo ""
  echo "update-sdsu-sereno: ### bad arg: $1  (OK: csurf,cereb,fsavg,sereno,all)"
  echo ""
  exit
fi

### require wget
bin=wget
if [ "`which $bin 2> /dev/null`" = "" ]; then
  echo ""
  echo "update-sdsu-sereno: ### $bin not found on current path  ...quitting"
  echo ""
  exit
fi

### require SDSU update-target dir
if [ ! -e $csurfdir ]; then
  echo ""
  echo "update-sdsu-sereno: ### local SDSU dist dir to update not found:"
  echo ""
  echo "  $csurfdir    ...quitting"
  echo ""
  exit
fi
echo ""
cd $csurfdir

### find date of latest official mac dist (csurf0.8-mac-YYMMDD.tgz)
tmpfile=zz-latestmaccsurf.txt
wget $pagescsurf/.latestcsurf.txt -O $tmpfile > /dev/null 2>&1
mactar=`grep -s "\csurf0.8-mac\-" $tmpfile`
latestdate=`basename $mactar .tgz | awk -F- '{print $3}'`
rm -f $tmpfile

### OK to go?
echo ""
if [ "$1" = "csurf" ]; then
  echo "OK to update SDSU csurf w/latest UCSD distro? (YYMMDD = $latestdate)"
  echo ""
fi
if [ "$1" = "cereb" ]; then
  echo "OK to update SDSU cereb/updates data with latest UCSD distribution?"
  echo ""
fi
if [ "$1" = "fsavg" ]; then
 echo "OK to update SDSU fsaverage-labels/fsaverage-ADDITIONS with latest UCSD?"
  echo ""
fi
if [ "$1" = "sereno" ]; then
  echo "OK to update SDSU sereno webpage with latest UCSD version?"
  echo ""
fi
if [ "$1" = "all" ]; then
  echo "OK to update SDSU csurf/cereb/fsaverage/sereno from latest UCSD?"
  echo ""
fi
echo " => ctrl-D to go"
echo " => ctrl-C to quit"
read resp
echo ""

if [ $update_csurf -eq 1 ]; then
  ### rm existing {README,UPDATES,EMAIL*}.txt, binaries, src (so no *.1's)
  echo "#######################################################"
  echo "update-sdsu-sereno: remove old textfiles, distros, src"
  echo "#######################################################"
  echo ""
  cd $csurfdir
  rm -f csurf0.8-*-??????.tgz
  rm -f EMAIL-????##.txt   # old style
  rm -f EMAIL-latest.txt
  rm -f README.txt
  rm -f UPDATES.txt
  rm -f .latestcsurf.txt
  rm -f src/csurfsrc-??????.tgz
  rm -rf EMAIL-prev
  # one-time cleanups, redo OK
  #rm -f README.txt.[123456789]
  #rm -f UPDATES.txt.[123456789]
  #rm -f .latestcsurf.txt.[123456789]

  ### update text files
  echo "#######################################################"
  echo "update-sdsu-sereno: update textfiles"
  echo "#######################################################"
  echo ""
  cd $csurfdir
  wget $pagescsurf/UPDATES.txt
  wget $pagescsurf/README.txt
  wget $pagescsurf/EMAIL-latest.txt
  # be sure to keep final '/' in url dir!
  wget \
    --recursive \
    --no-parent \
    --convert-links \
    --random-wait --wait 1 --no-http-keep-alive \
    --no-host-directories \
    --execute robots=off --user-agent=Mozilla/5.0 \
    --level=inf --accept '*' \
    --reject="index.html*" \
    --cut-dirs=2 \
    https://pages.ucsd.edu/~msereno/csurf/EMAIL-prev/

  ### update binary distributions
  echo "#######################################################"
  echo "update-sdsu-sereno: update distros"
  echo "#######################################################"
  echo ""
  cd $csurfdir
  wget $pagescsurf/csurf0.8-mac-$latestdate.tgz
  #wget $pagescsurf/Csurf.app0.8-mac-$latestdate.tgz
  wget $pagescsurf/csurf0.8-linux32-$latestdate.tgz
  wget $pagescsurf/csurf0.8-linux64-$latestdate.tgz
  
  ### update 'latest' list (for update-csurf)
  # (could run mkcsurflist instead)
  wget $pagescsurf/.latestcsurf.txt
  
  ### update source
  echo "#######################################################"
  echo "update-sdsu-sereno: update src"
  echo "#######################################################"
  echo ""
  if [ ! -e $csurfdir/src ]; then mkdir $csurfdir/src; fi
  cd $csurfdir/src
  rm -f csurfsrc-??????.tgz
  wget $pagescsurf/$srcloc/csurfsrc-$latestdate.tgz
fi

if [ $update_cereb -eq 1 ]; then
  ### update cereb/updates dir
  echo "#######################################################"
  echo "update-sdsu-sereno: update cereb/updates dir"
  echo "#######################################################"
  cd $cerebdir
  rm -rf updates
  # be sure to keep final '/' in url dir!
  wget \
    --recursive \
    --no-parent \
    --convert-links \
    --random-wait --wait 1 --no-http-keep-alive \
    --no-host-directories \
    --execute robots=off --user-agent=Mozilla/5.0 \
    --level=inf --accept '*' \
    --reject="index.html*" \
    --cut-dirs=2 \
    https://pages.ucsd.edu/~msereno/cereb/updates/
  ## one-time SDSU cleanup, redo OK
  #rm -rf index.html
  #wget https://pages.ucsd.edu/~msereno/cereb/.index.html.SDSU
  #mv .index.html.SDSU index.html
  ## 2nd one-time SDSU update: rm www.cogsci.ucsd.edu/~msereno/.tmp/dist,redo OK
  #cd $cerebdir/data
  #wget https://pages.ucsd.edu/~msereno/csurf/cereb/data/README.txt
fi

if [ $update_fsavg -eq 1 ]; then
  ### update fsaverage-labels
  echo "#######################################################"
  echo "update-sdsu-sereno: update fsaverage-labels"
  echo "#######################################################"
  cd $csurfdir
  rm -rf fsaverage-labels
  # be sure to keep final '/' in url dir!
  wget \
    --recursive \
    --no-parent \
    --convert-links \
    --random-wait --wait 1 --no-http-keep-alive \
    --no-host-directories \
    --execute robots=off --user-agent=Mozilla/5.0 \
    --level=inf --accept '*' \
    --reject="index.html*" \
    --cut-dirs=2 \
    https://pages.ucsd.edu/~msereno/csurf/fsaverage-labels/
  
  ### update fsaverage additions files
  echo "#######################################################"
  echo "update-sdsu-sereno: update fsaverage-ADDITIONS.tgz, fsaverage.tgz"
  echo "#######################################################"
  cd $csurfdir
  rm -f fsaverage-ADDITIONS.tgz
  wget $pagescsurf/fsaverage-ADDITIONS.tgz
  rm -f fsaverage.tgz
  wget $pagescsurf/fsaverage.tgz
fi
  
if [ $update_sereno -eq 1 ]; then
  ### update sereno/index.html
  echo "#######################################################"
  echo "update-sdsu-sereno: update sereno/index.html"
  echo "#######################################################"
  cd $serenodir
  mv -f index.html index.html~
  wget \
    --no-parent \
    --convert-links \
    --no-host-directories \
    https://pages.ucsd.edu/~msereno/index.html
fi

### done
echo ""
echo "update-sdsu-sereno $1  ...done"
echo ""

