home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / belongs2.zip / B2Remove.Cmd < prev    next >
OS/2 REXX Batch file  |  1995-08-26  |  6KB  |  168 lines

  1. /***************************************************************************/
  2. /* B2REMOVE.CMD                                                            */
  3. /*                                                                         */
  4. /* Removes the "Belongs2" program, directory, and folder.                  */
  5. /*                                                                         */
  6. /* Revisions:                                                              */
  7. /*     08/26/95 1.1 - Added "SysIni" to remove INI file entries.           */
  8. /*     12/20/93 1.0 - Created.                                             */
  9. /***************************************************************************/
  10.  
  11.    targetdir = 'Belongs 2'
  12.    FATdir = 'BELONGS2'
  13.  
  14. /* Load REXX Utility Functions */
  15.  
  16.    if AddRexxUtil( 'SysDestroyObject' ) then signal ERROR
  17.    if AddRexxUtil( 'SysSetObjectData' ) then signal ERROR
  18.    if AddRexxUtil( 'SysIni' ) then signal ERROR
  19.  
  20. /* Get arguments */
  21.  
  22.    parse upper arg targetdrive extra
  23.  
  24. /* Verify target drive argument */
  25.  
  26.    do forever
  27.       if LENGTH( targetdrive ) > 2 then
  28.          say 'Too many characters - enter a drive letter'
  29.       else if LENGTH( targetdrive ) > 0 then do
  30.          if DATATYPE( SUBSTR( targetdrive, 1, 1 ), 'Mixed case' ) = 0 then
  31.             say 'First character must be a drive letter'
  32.          else do
  33.             if LENGTH( targetdrive ) = 1 then do
  34.                targetdrive = targetdrive':'
  35.                leave
  36.             end  /* Do */
  37.             else do
  38.                if SUBSTR( targetdrive, 2, 1 ) = ':' then
  39.                   leave
  40.                else do
  41.                   say 'Second character must be : or omitted'
  42.                end  /* Do */
  43.             end  /* Do */
  44.          end  /* Do */
  45.       end  /* Do */
  46.       say 'Enter drive where program executable was installed:'
  47.       pull targetdrive
  48.    end /* do */
  49.  
  50. /* Suppress command display */
  51.  
  52.    '@echo off'
  53.  
  54. /* See if directory exists */
  55.  
  56.    curdir = directory()
  57.    newdir = targetdrive'\'targetdir
  58.    if directory( newdir ) = newdir then do
  59.    /* Change to the root directory so directory can be deleted */
  60.       newdir = targetdrive'\'
  61.       call directory newdir
  62.    /* Change back to original directory */
  63.       call directory curdir
  64.    /* Delete all programs in directory */
  65.       'del "'targetdrive'\'targetdir'\*.exe"'
  66.       if rc = 0 then
  67.          say 'All programs in "'targetdrive'\'targetdir'" directory have been deleted'
  68.       else
  69.          say 'No programs in "'targetdrive'\'targetdir'" directory'
  70.    /* Delete directory */
  71.       'rd "'targetdrive'\'targetdir'"'
  72.       if rc = 0 then
  73.          say 'Directory "'targetdrive'\'targetdir'" deleted'
  74.       else do
  75.          say 'Unable to delete directory "'targetdrive'\'targetdir'"'
  76.          signal ERROR
  77.       end  /* Do */
  78.    end  /* Do */
  79.    else do
  80.    /* Try FAT file system */
  81.       targetdir = FATdir
  82.       newdir = targetdrive'\'targetdir
  83.       if directory( newdir ) = newdir then do
  84.       /* Change to the root directory so directory can be deleted */
  85.          newdir = targetdrive'\'
  86.          call directory newdir
  87.       /* Change back to original directory */
  88.          call directory curdir
  89.       /* Delete all programs in directory */
  90.          'del "'targetdrive'\'targetdir'\*.exe"'
  91.          if rc = 0 then
  92.             say 'All programs in "'targetdrive'\'targetdir'" directory have been deleted'
  93.          else
  94.             say 'No programs in "'targetdrive'\'targetdir'" directory'
  95.       /* Delete directory */
  96.          'rd "'targetdrive'\'targetdir'"'
  97.          if rc = 0 then
  98.             say 'Directory "'targetdrive'\'targetdir'" deleted'
  99.          else do
  100.             say 'Unable to delete directory "'targetdrive'\'targetdir'"'
  101.             signal ERROR
  102.          end  /* Do */
  103.       end  /* Do */
  104.       else
  105.          say 'Directory does not exist on' targetdrive
  106.    end  /* Do */
  107.  
  108. /* Make the program object deletable */
  109.  
  110.    setup = 'NODELETE=NO;'
  111.    result = SysSetObjectData( '<BELONGS2_PROGRAM>', setup );
  112.  
  113. /* Delete the program object */
  114.  
  115.    result = SysDestroyObject( '<BELONGS2_PROGRAM>' )
  116. /* Make sure object no longer exists */
  117.    if SysSetObjectData( '<BELONGS2_PROGRAM>', setup ) = 1 /* updated */ then do
  118.       say 'Unable to delete program object'
  119.       signal ERROR
  120.    end  /* Do */
  121.    else do
  122.    /* Display what happened with SysDestroyObject */
  123.       if result = 1 /* deleted */ then
  124.          say 'Program object deleted'
  125.       else
  126.          say 'Program object does not exist'
  127.    end  /* Do */
  128.  
  129. /* Delete hidden Startup folder */
  130.  
  131.    result = SysDestroyObject( '<HIDDEN_STARTUP>' )
  132. /* Make sure folder no longer exists */
  133.    setup = 'OBJECTID=<HIDDEN_STARTUP>;'
  134.    if SysSetObjectData( '<HIDDEN_STARTUP>', setup ) = 1 /* updated */ then do
  135.       say 'Unable to delete hidden Startup folder'
  136.       signal ERROR
  137.    end  /* Do */
  138.    else do
  139.    /* Display what happened with SysDestroyObject */
  140.       if result = 1 /* deleted */ then
  141.          say 'Hidden startup folder deleted'
  142.       else
  143.          say 'Hidden Startup folder does not exist'
  144.    end  /* Do */
  145.  
  146. /* Delete any INI file entries */
  147.  
  148.    call SysIni 'USER', 'Belongs2', 'DELETE:'
  149.  
  150. ERROR:
  151.    exit
  152.  
  153. /* AddRexxUtil procedure */
  154.  
  155. AddRexxUtil: procedure
  156.  
  157.    parse arg name
  158.  
  159.    if RxFuncQuery( name ) \= 0 /* not registered */ then do
  160.       if RxFuncAdd( name, 'RexxUtil', name ) \= 0 /* not successful */ then do
  161.           say 'Unable to register REXX Utility Function' name
  162.           return 1 /* failure */
  163.       end  /* Do */
  164.    end  /* Do */
  165.  
  166.    return 0 /* success */
  167.  
  168.