home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v1.zip / DDKX86 / setup / DELDDK.CMD < prev    next >
OS/2 REXX Batch file  |  1995-04-18  |  9KB  |  341 lines

  1. /**************************************************************************
  2.  *
  3.  * SOURCE FILE NAME = DELDDK.CMD
  4.  *
  5.  * DESCRIPTIVE NAME = Delete the entire DDKx86 tree.
  6.  *
  7.  * Copyright : COPYRIGHT IBM CORPORATION, 1993-1995
  8.  *             LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
  9.  *             REFER TO COPYRIGHT INSTRUCTION FORM#G120-2083
  10.  *             RESTRICTED MATERIALS OF IBM
  11.  *
  12.  * VERSION = V2.0
  13.  *
  14.  * DATE
  15.  *
  16.  * DESCRIPTION  This command file deletes the system DDKx86 INI entries
  17.  *              and the DDK tree.
  18.  *
  19.  * Functions    Testexist
  20.  *              Remind
  21.  *              DelDir
  22.  *
  23.  * CHANGE ACTIVITY =
  24.  *  DATE      FLAG        APAR     CHANGE DESCRIPTION
  25.  *  --------  ----------  -----    --------------------------------------
  26.  *  mm/dd/yy  @Vr.mpppxx  xxxxx    xxxxxxx
  27.  *  06/10/93  v2.00000jk           Created       Jagan Karuturi
  28.  *  02/01/94  v2.00001jk  modified to delete EPFIS.INI keywords.  Jagan
  29.  ****************************************************************************/
  30.  
  31. /*
  32.  
  33.    This command gets the path for the DDK from the user
  34.    and deletes the entire tree using Rexx functions
  35.  
  36. */
  37.  
  38. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  39. call SysLoadFuncs
  40. call SysCls
  41. escq=x2c('1B'); Cyan=escq'[1;36;40m'; White=escq'[0;37;40m'; Red=escq'[1;31;40m'
  42. Yellow=escq'[1;33;40m'
  43. Line= '---------------------------------------------------------------------'
  44. /*
  45.    Make sure that the user supplies the path to be deleted
  46.    If not output help messages on to the screen.  Also check
  47.    if the user enters the existing directory.  If the
  48.    does not exist display error message.
  49. */
  50.  
  51.  parse upper arg Dir
  52.  
  53.  if Dir = '?' | Dir = ''
  54.    then signal Remind
  55.  Keep = Testexist(Dir)
  56.  
  57.   say Red
  58.   say 'WARNING: If you made any changes to the previous version of the DDK,'
  59.   say 'make sure that you SAVE the modified files. All the existing files'
  60.   say 'in the specified directory and subdirectories will be deleted.'
  61.   say
  62.   say White
  63.   say 'Do you want to continue ?'
  64.   say 'Enter Y or y to continue, else N or n to exit out of this program:'
  65.  
  66.    do until wordpos(Ch, 'Y N') <> 0
  67.      Ch=translate( SysGetKey('NOECHO'))
  68.    end
  69.    say Ch
  70.    if Ch = 'N' then do
  71.       say White
  72.       exit 2
  73.    end
  74.    say White
  75.  
  76.  
  77. /*
  78.    Find out the bootdrive from the path and then delete the EPF* files
  79.    from OS2/SYSTEM   directory
  80. */
  81.  
  82.  path = value('PATH',,'OS2ENVIRONMENT')
  83.  
  84.  if pos(':\OS2\SYSTEM', path) > 1 then
  85.     Parse Upper var path . ":\OS2\SYSTEM" -1 bootdrive +1 .
  86.  else bootdrive = 'C'
  87.  bootpath= bootdrive':\os2\system'
  88.  
  89. call SysIni bootpath'\epfis.ini','EPFINST_IBM Developer Connection Device Driver Kit for OS/2_83G9641_', 'DELETE:'
  90. call SysIni bootpath'\epfis.ini','EPFINST_IBM Device Driver Source Kit for OS/2_71G3703-01_', 'DELETE:'
  91. call SysIni bootpath'\epfis.ini','EPFINST_IBM Device Driver Source Kit for OS/2_71G3703_', 'DELETE:'
  92. call SysIni bootpath'\epfis.ini','EPFINST_IBM Device Driver Source Kit for OS/2_71G3703_5892', 'DELETE:'
  93. call SysIni bootpath'\epfis.ini','EPFINST_OS/2 Device Driver Development Kit_0_0', 'DELETE:'
  94.  
  95.  
  96.  call SysFileTree bootpath'\epfi*.*', files, 'FSO', '***+*'
  97.  
  98.   do i = 1 to files.0
  99.  
  100.           '@ATTRIB -r -h' files.i
  101.   end
  102.  
  103.  
  104.  drop files.i
  105.  
  106.  
  107.  call SysFileTree bootpath'\epfi*.*', files, 'FO'
  108.  
  109.  if files.0 = 0
  110.  then
  111.     do
  112.       say Red
  113.       say 'The system DDK INI entries have already been removed - CONTINUE'
  114.       say White
  115.     end
  116.  else
  117.   do i = 1 to files.0
  118.  
  119.      if i=1
  120.       then
  121.             call SysFileDelete bootpath'\epficat.pkg'
  122.             call SysFileDelete bootpath'\epfihcnf.cnf'
  123.   end
  124.  
  125. /*
  126. ** If the directory exists then prompt the user again to make sure
  127. ** he wants to delete the DDK directory
  128. */
  129.  
  130.  say
  131.  say 'You have selected to delete the' Cyan||Keep||White 'directory'
  132.  
  133.  do
  134.    say Cyan
  135.    Say 'Are you sure ? '
  136.    do until wordpos(Ch, 'Y N') <> 0
  137.      Ch=translate( SysGetKey('NOECHO'))
  138.    end
  139.    say Ch
  140.  
  141.    if Ch = 'N' then do
  142.  
  143.     say White
  144.     exit 2
  145.    end
  146.  
  147.    else
  148.    say White
  149.    say 'Please wait, deleting' Cyan||Keep||White 'directory...'
  150.    say
  151.  
  152.    result = SysDestroyObject('<DDKFLD>')
  153.    result = SysDestroyObject('<DDKI_FOLDER>')
  154.  
  155.    call deldir keep'\H'
  156.    rc=SysRmDir(keep'\H')
  157.  
  158.    call deldir keep'\BOOK'
  159.    rc=SysRmDir(keep'\BOOK')
  160.  
  161.    call deldir keep'\DBCSDD'
  162.    rc=SysRmDir(keep'\DBCSDD')
  163.  
  164.    call deldir keep'\H386'
  165.    rc=SysRmDir(keep'\h386')
  166.  
  167.    call deldir keep'\H_DBCS'
  168.    rc=SysRmDir(keep'\H_DBCS')
  169.  
  170.    call deldir keep'\IBMH'
  171.    rc=SysRmDir(keep'\IBMH')
  172.  
  173.    call deldir keep'\IBMC'
  174.    rc=SysRmDir(keep'\IBMC')
  175.  
  176.    call deldir keep'\INC'
  177.    rc=SysRmDir(keep'\INC')
  178.  
  179.    call deldir keep'\INC32'
  180.    rc=SysRmDir(keep'\INC32')
  181.  
  182.    call deldir keep'\INC_DBCS'
  183.    rc=SysRmDir(keep'\INC_DBCS')
  184.  
  185.    call deldir keep'\LIB'
  186.    rc=SysRmDir(keep'\LIB')
  187.  
  188.    call deldir keep'\MASM60'
  189.    rc=SysRmDir(keep'\MASM60')
  190.  
  191.    call deldir keep'\MISCTOOL'
  192.    rc=SysRmDir(keep'\MISCTOOL')
  193.  
  194.    call deldir keep'\MMOS2'
  195.    rc=SysRmDir(keep'\MMOS2')
  196.  
  197.    call deldir keep'\MRI'
  198.    rc=SysRmDir(keep'\MRI')
  199.  
  200.    call deldir keep'\SETUP'
  201.    rc=SysRmDir(keep'\SETUP')
  202.  
  203.    call deldir keep'\SRC'
  204.    rc=SysRmDir(keep'\SRC')
  205.  
  206.    call deldir keep'\SRC_DBCS'
  207.    rc=SysRmDir(keep'\SRC_DBCS')
  208.  
  209.    call deldir keep'\SVGAINST'
  210.    rc=SysRmDir(keep'\SVGAINST')
  211.  
  212.    call deldir keep'\TESTCERT'
  213.    rc=SysRmDir(keep'\TESTCERT')
  214.  
  215.    call deldir keep'\TESTTOOL'
  216.    rc=SysRmDir(keep'\TESTTOOL')
  217.  
  218.    call deldir keep'\TOOLS'
  219.    rc=SysRmDir(keep'\TOOLS')
  220.  
  221.    call deldir keep'\VIDEO'
  222.    rc=SysRmDir(keep'\VIDEO')
  223.  
  224.    call SysFileDelete keep'\ddk.pkg'
  225.  
  226.    call SysFileDelete keep'\README.ddk'
  227.  
  228.    rc=SysRmDir(keep)
  229.  
  230.  end
  231.  say white
  232.  
  233. exit
  234.  
  235. /*==============================================================*/
  236. /* TESTEXIST PROCEDURE                                          */
  237. /* This procedure checks if the given directory name exists     */
  238. /*==============================================================*/
  239.  
  240.  Testexist:
  241.  
  242.   parse arg Dir
  243.   Keep = Dir
  244.   Home = directory()
  245.   Test = directory(Dir)
  246.   len = LENGTH(Dir)
  247.   gen= RIGHT(LEFT(Dir,2),1)
  248.  
  249.   if len <=3 & gen == ':'
  250.      then do
  251.            say Yellow
  252.            say  Dir 'is a drive, not a directory. Please enter a valid DDK directory.'
  253.            say White
  254.            exit
  255.          end
  256.   if Test = ''
  257.     then do
  258.             say Yellow
  259.             say 'Directory' Dir 'does not exist.'
  260.             say White
  261.             exit
  262.          end
  263.   else
  264.     call SysFileTree Test'\ddk.PKG', files, 'FO', '*****'
  265.     if files.0 == 0
  266.         then do
  267.               say Yellow
  268.               say 'Directory' Dir 'is not a DDK directory.'
  269.               say White
  270.               exit
  271.          end
  272.  
  273.     else
  274.             return Test
  275.  
  276. /*======================================================*/
  277. /* REMIND PROCEDURE                                     */
  278. /* This procedure reminds the user to enter the path    */
  279. /*======================================================*/
  280.  
  281.  Remind:
  282.  
  283.   say
  284.   say Yellow||Line
  285.   say 'DELDDK  - Delete the complete ddkx86 tree'
  286.   say Line
  287.   say White
  288.   say 'Syntax:   DELDDK directory_path'
  289.   say
  290.   say 'Example:  DELDDK D:\DDKx86'
  291.   say
  292.   say 'This command deletes all files in the specified ddkx86 directory'
  293.   say 'and its subdirectories, all ddkx86 maintenance files from the desktop.'
  294.   say Cyan
  295.   say 'Make sure that you enter the correct directory name.'
  296.   say Red
  297.   say 'WARNING: If you made any changes to the previous version'
  298.   say 'of the DDK, make sure that you SAVE the modified files.'
  299.   say White
  300.   exit 0
  301.  
  302. /*======================================================*/
  303. /* DELDIR PROCEDURE                                     */
  304. /* This procedure deletes all the files and directories */
  305. /*======================================================*/
  306.  
  307. deldir: procedure
  308.     parse arg dir .
  309.  
  310.     call SysFileTree dir'\*', files, 'FSO', '***+*'
  311.     do i = 1 to files.0
  312.  
  313.        '@ATTRIB -r -h' files.i
  314.     end
  315.  
  316.     drop files.i
  317.  
  318.     call SysFileTree dir'\*', files, 'FO'
  319.     do i = 1 to files.0
  320.  
  321.    /*    say files.i          */
  322.        call SysFileDelete files.i
  323.  
  324.     end
  325.  
  326.     drop files.
  327.  
  328.     call SysFileTree dir'\*', files, 'DO'
  329.  
  330.     do i = 1 to files.0
  331.  
  332.       say files.i
  333.       call deldir files.i
  334.       call SysRmDir files.i
  335.  
  336.     end
  337.  
  338.     return
  339.  
  340. /********************************************************************/
  341.