home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / csc2idl.zip / CTOI.CMD
OS/2 REXX Batch file  |  1998-04-20  |  2KB  |  75 lines

  1. /*  [REXX]  */
  2. /*
  3.  *   COMPONENT_NAME: some
  4.  *
  5.  *   ORIGINS: 27
  6.  *
  7.  *
  8.  *    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,1996 
  9.  *   All Rights Reserved
  10.  *   Licensed Materials - Property of IBM
  11.  *   US Government Users Restricted Rights - Use, duplication or
  12.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  13.  */
  14. /*  @(#) somc/ctoi.cmd 2.10 1/9/96 17:24:49 [7/30/96 14:44:48]
  15.  *  Convert a .csc files to .idl files.
  16.  */
  17. nonomatch = "";
  18. force = 0;
  19.  
  20. parse arg argv;
  21.  
  22. parse value argv with flag rest;
  23. if flag = "-f" then do;
  24.     force = 1;
  25.     argv = rest;
  26. end;
  27.  
  28. scflags = value("scflags",,"os2environment");
  29. sc    = value("sc",,"os2environment");
  30. if sc = "" then sc = "sc";
  31.  
  32. if scflags <> "" then
  33.     cmd = "@" || sc "-mtypecheck -mrmstar -mconvert" scflags "-sidl";
  34. else
  35.     cmd = "@" || sc "-mtypecheck -mrmstar -mconvert -sidl";
  36.  
  37. do while argv <> "";
  38.     parse value argv with i argv;
  39.     iroot = root(i);
  40.     if stream(i, "c", "query exists") <> "" then
  41.     if stream(iroot || ".idl", "c", "query exists") <> "" then
  42.         say iroot || ".idl already exists"
  43.     else do;
  44.         say i":";
  45.         cmd i;
  46.         if rc <> 0 then do;
  47.         say "error in converting" i;
  48.         "@del" iroot || ".id2 >nul 2>&1";
  49.         if force = 0 then exit(-1);
  50.         end;
  51.         else do;
  52.         "@copy" iroot || ".id2" iroot || ".idl";
  53.         "@del"  iroot || ".id2";
  54.             end;
  55.     end;
  56.     else do;
  57.     say i "not found";
  58.     exit(-1);
  59.     end;
  60. end;
  61.  
  62. "@del SMIDENTS.UNK >nul 2>&1";
  63. exit(0);
  64.  
  65. root: procedure;
  66.     parse arg fn;
  67.     i = length(fn);
  68.     root = fn;
  69.     do while i>0 & root = fn
  70.         if substr(fn,i,1) = '.' then
  71.             root = LEFT(fn,i-1);
  72.         i = i - 1
  73.     end 
  74.     return root;
  75.