@echo off
rem -- Description:
rem --
rem -- This script is designed to easily allow the user to install
rem -- some useful programs which can run in a Dos Console window in
rem -- a Microsoft Window Environment. (The current script is designed
rem -- to run on Windows xp or nt). This evolved from
rem -- get-stuff-xp.bat.
rem --
rem --
rem --
rem -- A distribution of the 'wget' program
rem --   http://xoomer.virgilio.it/hherold/
rem --
rem --
rem --  Notes:
rem --
rem --   Basically this script attempts to mimic, in a very rudimentary
rem --   the Linux package management programs such as the Debian 'apt'
rem --   program or the Redhat 'rpm' program.
rem --
rem --  
rem -- See Also:
rem --   conf-dos.bat   conf-dos.bat is similar to the following
rem --   script but it does not give the user a menu of choices of
rem --   what to install. It just installs everything, such as
rem --     djgpp development environment, wget, a set of unix tools
rem --     the Arachne browser, the lynx browser.
rem --
rem -- modified: november 2005, debugging. most functions now work.
rem --
rem -- Author:
rem --   mjb  matth3wbishop@yahoo.com

rem doskey

rem *** set the FIREFTP variable to '-a' when you are behind
rem *** a proxy or firewall which is not allowing the normal ftp
rem *** operations to work, for example
rem  FIREFTP=-a
set FIREFTP=
set DRIVE=c:
set BASEDIR=%DRIVE%\m3b

mkdir %BASEDIR%
@rem copy get-stuff-xp.bat \windows\get-stuff-xp.bat

@echo 'get-stuff-xp.bat' can install some useful programs on your
@echo Microsoft Windows computer. You need an Internet connection
@echo for this program to work [This version is for Windows XP]
@echo see: http://www.geocities.com/matth3wbishop/
@echo =====================================================
@echo
@echo x: quit without installing anything
@echo a: wget - URL getter   [http://www.gnu.org/wget/]   
@echo b: infozip - zip compression / decompression [http://www.info-zip.org/]
@echo c: putty - an ssh client and friends [http://www.chiark.greenend.org.uk/~sgtatham/putty/]
@echo d: unix tools - Unix utility programs [http://unxutils.sourceforge.net]
@echo e: lynx - Text only browser with SSL [http://www.lynx.org ?]
@echo f: arachne - Graphical dos/winx browser [http://www.arachne.com ?]
@echo h: vim - a text editor [http://www.vim.org] - 3MB
@echo i: mjb - mirror matth3wbishop [http://www.geocities.com/matth3wbishop]
@echo j: geoftp - system to upload to geocities free account 
@echo k: curl - ssh url getter [http://curl.haxx.se/]
set /p choice="Which program would you like to install "

set PROG=
if "%choice%"=="x" set PROG=x
if "%choice%"=="a" set PROG=wget
if "%choice%"=="b" set PROG=infozip
if "%choice%"=="c" set PROG=putty
if "%choice%"=="d" set PROG=unixutil
if "%choice%"=="e" set PROG=lynx
if "%choice%"=="f" set PROG=arachne
if "%choice%"=="g" set PROG=djgpp
if "%choice%"=="h" set PROG=vim
if "%choice%"=="i" set PROG=mjb
if "%choice%"=="j" set PROG=geoftp
if "%choice%"=="k" set PROG=curl
if "%choice%"=="l" set PROG=retrovox

echo Program Selected=%PROG% 

if %PROG%==x goto end
if %PROG%== goto end


@rem -------------------------------------------------------

if NOT %PROG%==wget goto endifWG
  @rem ***
  @rem *** The following code creates an ftp script file which can be used
  @rem *** with the standard Microsoft Windows command line ftp program
  @rem *** The purpose of this section is to retrieve the wget program from
  @rem *** the 'sunsite' ftp server. In the past I have noticed that
  @rem *** under some versions of MS Windows, when the script file has finished
  @rem *** the ftp program does not exit (it waits for more commands from the
  @rem *** command line). This will cause the present script to stop executing.
  @rem *** One solution to this situation is just to type 'quit' at the
  @rem *** prompt which looks like this "ftp>"
  @rem ***
  @rem *** create the ftp script file
  @rem ***


  set WGETSITE=ftp.sunsite.dk
  set WGETDIR=projects/wget/windows

  mkdir %BASEDIR%\wget

  del /Q %BASEDIR%\wget\*
  cd %BASEDIR%\wget
  @rem -- Note that I believe that I have noticed that on some versions
  @rem -- of the MS Windows console it is not possible to change directories
  @rem -- using the syntax
  @rem --    cd c:\some\dir
  @rem -- That is, the drive letter is not allowed in the path. If this is
  @rem -- true then the line immediately above the current comment block
  @rem -- will fail. However on Windows 98SE this appears to be working

  echo user anonymous matthew@macwcwagga.homedns.org > junk.txt
  echo hash >> junk.txt
  echo bin >> junk.txt
  echo cd %WGETDIR% >> junk.txt

  @rem -- I wonder how portable this construct is to various
  @rem -- dos and windows batch languages. It works on Windows 98 and 
  @rem -- Windows XP

  echo get wget-1.9.1b.zip >> junk.txt
  echo get ssllibs097c.zip >> junk.txt

  rem -- echo get wget-1.9s.zip >> junk.txt
  echo quit >> junk.txt



  @rem ***
  @rem *** Logon & transfer the file                                       
  @rem ***
  ftp %FIREFTP% -n -s:junk.txt %WGETSITE%
  @rem *** When behind a firewall use the following line
  @rem ***  ftp -n -s:junk.txt -a %WGETSITE% but please NOTE that the
  @rem *** line above this comment block actually should take care of
  @rem *** this situation by using the FIREFTP variable.
  rem del junk.txt

  %BASEDIR%\infozip\unzip\unzip -o *.zip
  rem echo %BASEDIR%\wget\wget.exe %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 > \windows\wget.bat
  copy /y wget.exe \windows\
  copy /y *.dll \windows\
  move wget.HLP wget-ms.HLP

  @echo The wget recursive URL retriever may have been installed
  @echo successfully in the directory %BASEDIR%\wget\. Type
  @echo   wget -h | more
  @echo to see how it works or look at the file %BASEDIR%\wget\wget-ms.hlp
  @echo The correct installation of 'wget' is dependent on the 'infozip'
  @echo programs being installed first. 
:endifWG
@rem -- end of WGET block


@rem -------------------------------------------------------

if NOT %PROG%==infozip goto endifIZ
  set ZIPSITE=ftp.info-zip.org
  set ZIPDIR=pub/infozip/WIN32
  set ZIPDIR2=pub/infozip/MSDOS

  mkdir %BASEDIR%\infozip
  mkdir %BASEDIR%\infozip\unzip
  mkdir %BASEDIR%\infozip\unzip\dos
  mkdir %BASEDIR%\infozip\zip
  mkdir %BASEDIR%\infozip\zip\dos
  mkdir %BASEDIR%\infozip\gui

  @rem -- remove previous versions
  del /Q %BASEDIR%\infozip\unzip\*
  del /Q %BASEDIR%\infozip\zip\*
  del /Q %BASEDIR%\infozip\gui\*

  cd %BASEDIR%\infozip\unzip

  echo user anonymous matth2wbishop@yahoo.com > junk.txt
  echo hash >> junk.txt
  echo bin >> junk.txt
  echo cd %ZIPDIR% >> junk.txt
  echo lcd %BASEDIR%\infozip\unzip >> junk.txt

  @rem --  IF EXIST %BASEDIR%\infozip\unzip\unz552xN.exe GOTO endif3
    echo get unz552xN.exe >> junk.txt
  @rem --  :endif3

  echo lcd %BASEDIR%\infozip\zip >> junk.txt
  echo get zip231xN.zip >> junk.txt
  @rem -- echo lcd %BASEDIR%\infozip\gui >> junk.txt
  @rem -- echo get wiz503xN.exe >> junk.txt

  rem -- echo get wget-1.9s.zip >> junk.txt
  echo quit >> junk.txt

  @rem ***
  @rem *** Logon & transfer the file                                       
  @rem ***
  ftp %FIREFTP% -n -s:junk.txt %ZIPSITE%
  rem del junk.txt

  %BASEDIR%\infozip\unzip\unz552xN.exe
  cd %BASEDIR%\infozip\zip
  %BASEDIR%\infozip\unzip\unzip -o zip231xN.zip
  echo %BASEDIR%\infozip\zip\zip.exe %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 > \windows\zip.bat
  echo %BASEDIR%\infozip\unzip\unzip.exe %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 > \windows\unzip.bat

  @rem --- The extraction below triggers a gui process which will
  @rem --- interrupt the current script
  @rem ---
  @rem --- cd %BASEDIR%\infozip\gui
  @rem --- wiz502xN.exe



  @echo The infozip compression tools MAY have been installed
  @echo successfully in the directory %BASEDIR%\infozip\ . Type
  @echo   unzip filename.zip  to decompress,
  @echo   zip filename.ext    to compress and
  @echo   wiz                 to use a graphical compression tool
  @echo type unzip -h  ... etc for more help
  @echo

:endifIZ
@rem -- end of INFOZIP block

@rem -------------------------------------------------------

if NOT %PROG%==unixutil goto endifUU
  rmdir /s/q %BASEDIR%\unixutil
  mkdir %BASEDIR%\unixutil
  @rem path=%path%;%BASEDIR%\unixutil\usr\local\wbin
  @rem path=%path%;%BASEDIR%\unixutil\bin
  cd %BASEDIR%\unixutil

  wget http://unxutils.sourceforge.net/UnxUtils.zip

  %BASEDIR%\infozip\unzip\unzip -o UnxUtils.zip
  cd %BASEDIR%\unixutil\usr\local\wbin
  move find.exe ufind.exe
  move expand.exe uexpand.exe

  echo path=%BASEDIR%\unixutil\usr\local\wbin;%%PATH%% > \windows\sh.bat
  echo %BASEDIR%\unixutil\bin\sh.exe %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 >> \windows\sh.bat

  @echo  The ports of the unix utilities were (probably) successfully
  @echo  installed in the directory %BASEDIR%\unixutil\ .
  @echo  Type 'sh' to start a unix style shell, or type
  @echo  the name of a unix utility to use it from within the Microsoft
  @echo  Windows Console Box.
  @echo  NOTE: the Unix 'find' program is called 'ufind' to prevent
  @echo        it from interfering with the Microsoft program of the same
  @echo        name and similarly with the expand program
  @echo  .
  @echo  The installation of the unix utilities required the prior
  @echo  installation of the 'infozip' and 'wget' tools. If you
  @echo  have a problem using the unix tools, run these other
  @echo  installation programs first, and then rerun the unix tools
  @echo  installation program.
  @echo  See http://unxutils.sourceforge.net/ for more information

:endifUU


if NOT %PROG%==lynx goto endifLB
  rmdir /q/s %BASEDIR%\lynx
  mkdir %BASEDIR%\lynx

  cd %BASEDIR%\lynx
  set WGETURL=http://www.fredlwm.hpg.ig.com.br/cygwin/lynx/download/MinGW/lynx.piz
  set WGETREF=http://www.fredlwm.hpg.ig.com.br/cygwin/lynx/
  wget --referer=%WGETREF% -Olynx.zip %WGETURL%

  @rem move lynx.piz lynx.zip
  wget http://lynx.isc.org/current/lynx2-8-5/lynx.cfg

  %BASEDIR%\infozip\unzip\unzip -o lynx.zip
  set LYNX_CFG=%BASEDIR%\lynx\Lynx\lynx.cfg
  set LYNXDIR=%BASEDIR%\lynx\Lynx
  echo %LYNXDIR%\lynx.exe -cfg=%LYNXDIR%\lynx.cfg %%1 %%2 %%3 %%4 > \windows\lynx.bat

  echo INCLUDE:%LYNXDIR%\lynx.cfg.dist >> %LYNXDIR%\lynx.cfg
  echo HELPFILE:http://www.subir.com/lynx/lynx_help/lynx_help_main.html >> %LYNXDIR%\lynx.cfg
  echo ACCEPT_ALL_COOKIES:TRUE >> %LYNXDIR%\lynx.cfg
  echo STARTFILE:http://www.google.com >> %LYNXDIR%\lynx.cfg

  @echo =================
  @echo The text mode web-browser Lynx may have been installed
  @echo successfully. You should be able to see how it works by typing
  @echo   lynx
  @echo now on the command line. 
  @echo 
  @echo  The installation of the lynx browser required the prior
  @echo  installation of the 'infozip' and 'wget' tools. If you
  @echo  have a problem using the unix tools, run these other
  @echo  installation programs first, and then rerun the unix tools
  @echo  installation program.
  @echo =================
:endifLB

@rem -------------------------------------------------------

if NOT %PROG%==arachne goto endifAB
  @rem --- get the dos and windows dos-box browser 'Arachne'
  @rem ---
  mkdir %BASEDIR%\arachne
  path=%path%;%BASEDIR%\arachne
  cd %BASEDIR%\arachne

  IF EXIST %BASEDIR%\arachne\a173gplf.zip GOTO endif10
    wget http://home.hetnet.nl/~ba8tian/arachne/a173gplf.zip
  :endif10

  %BASEDIR%\infozip\unzip\unzip -o a173gplf.zip
  @rem -- arachne needs to be setup and configured by running the
  @rem -- setup program. I am not sure how this can be automated
  @rem -- currently. Arachne appears to be distributed under the GPL
  @rem -- although some of the documentation indicates that the core.exe
  @rem -- code is not open-source ?

:endifAB


@rem -------------------------------------------------------

if NOT %PROG%==mjb goto endifMM
  mkdir %BASEDIR%\mjb
  @rem path=%path%;%BASEDIR%\mjb
  cd %BASEDIR%\mjb
  wget -nH -m -Ac,txt,htm,html,js,java,class,css -Imatth3wbishop http://www.geocities.com/matth3wbishop

  @echo The web-site at http://www.geocities.com/matth3wbishop/ has been
  @echo mirrored locally at %BASEDIR%\mjb
  @echo However only the following file extensions were retrieved
  @echo c,txt,htm,html,js,java,class,css

:endifMM

@rem -------------------------------------------------------

if NOT %PROG%==vim goto endifVI
  rmdir /s/q %BASEDIR%\vim
  mkdir %BASEDIR%\vim
  @rem -- The line below is very XP/NT specific since it uses
  @rem -- substitutions in the variable.
  @rem path=%path:%BASEDIR%\vim\vim\vim62=%

  cd %BASEDIR%\vim
  wget -N ftp://ftp.vim.org/pub/vim/pc/vim62w32.zip
  wget -N ftp://ftp.vim.org/pub/vim/pc/vim62rt.zip
  %BASEDIR%\infozip\unzip\unzip -o *.zip

  cd %BASEDIR%\vim\vim\vim62
  rem install -create-vimrc -install-popup -add-start-menu -install-icons -create-directories
  install

  @echo The text editor vim has (probably) been installed successfully
  @echo in the directory %BASEDIR%\vim\vim\vim62
  @echo Type vim to start it and then type :help to see how it works.
  @echo Dependencies: wget, unzip
  @echo In some versions of windows you will have to set your Path
  @echo variable to the directory above.
:endifVI

@rem -------------------------------------------------------


if NOT %PROG%==curl goto endifCU
  rmdir /s/q %BASEDIR%\curl
  mkdir %BASEDIR%\curl
  cd %BASEDIR%\curl
  wget http://curl.haxx.se/download/openssl-0.9.7e-win32-bin.zip
  wget http://curl.haxx.se/download/curl-7.15.0-win32-ssl.zip

  %BASEDIR%\infozip\unzip\unzip -o *.zip
  copy /y %BASEDIR%\curl\curl-7.15.0\curl.exe \windows\
  copy /y %BASEDIR%\curl\*.dll \windows\

  @echo Dependencies: wget, unzip
  @echo Type curl to see what the curl program
  @echo can do. 

:endifCU

@rem -------------------------------------------------------

if NOT %PROG%==geoftp goto endifGF
  rmdir /s/q %BASEDIR%\geoftp
  mkdir %BASEDIR%\geoftp
  cd %BASEDIR%\geoftp
  wget -O upload-geocities.bat -N http://www.geocities.com/matth3wbishop/eg/batch/upload-geocities.txt
  wget -O lg.bat -N http://www.geocities.com/matth3wbishop/eg/batch/lg.txt

  wget -O upload-geocities.sh -N http://www.geocities.com/matth3wbishop/eg/unix-shell/upload-geocities.txt
  wget -O login-geocities-uu.sh -N http://www.geocities.com/matth3wbishop/eg/unix-shell/login-geocities-uu.txt


  @echo ==========================================
  @echo The command line interface to uploading to a geocities free
  @echo account may have been installed successfully in the
  @echo directory %BASEDIR%\geoftp
  @echo Dependencies: wget, curl, unixtools
  @echo Type 
  @echo   login-geocities [matthews-password]
  @echo or maybe
  @echo   lg [matthews-password]   and then type
  @echo   upload-geocities [file-to-upload] [target-directory]
  @echo This will upload a file to the site
  @echo   http://www.geocities.com/matth3wbishop/ which is a free geocities
  @echo web account. This script can upload to any account given the 
  @echo password, but I have not really configured this properly yet.
  @echo ==========================================


:endifGF

@rem -------------------------------------------------------

if NOT %PROG%==putty goto endifPT
  rmdir /s/q %BASEDIR%\putty
  mkdir %BASEDIR%\putty
  cd %BASEDIR%\putty   
  wget "http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe"
  wget "http://the.earth.li/~sgtatham/putty/latest/x86/psftp.exe"
  wget "http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe"
  wget "http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe"

  @rem -- %BASEDIR%\infozip\unzip\unzip -o *.zip
  copy /y %BASEDIR%\putty\*.exe \windows\

  @echo Dependencies: wget
  @echo Type putty to see what the putty program
  @echo can do. 

:endifPT

@rem -------------------------------------------------------

goto end

:error1
  @echo Error 1 occurred
goto end

:error2
  @echo Error 2 occurred
goto end

:end

echo doskey >> \autoexec.bat
@rem echo path=%path% >> \autoexec.bat

cd %BASEDIR%