home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / wpicreat.zip / oskwisc.zip / oskwisc.cmd < prev    next >
OS/2 REXX Batch file  |  1999-12-17  |  9KB  |  409 lines

  1. /* OSK WarpIN Script Creater */
  2.  
  3. language = value(oskwisc,,os2environment)
  4.  
  5. parse source . . pathname
  6. rc = directory(filespec(D, pathname)filespec(P, pathname)".")
  7.  
  8. signal on error name startRX
  9.  
  10. RXVERS
  11.  
  12. signal off error
  13.  
  14. call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
  15. call SysLoadFuncs
  16.  
  17. call loadLanguage(language)
  18.  
  19. n = initDialog()
  20.  
  21. rxdlg n '"'language.title'"' "WINDOWSIZE" "NOCLOSE"
  22.  
  23. call enabletime
  24.  
  25. do forever
  26.     rxdlg
  27.  
  28.     if rxid = -98 then exit /* Close Icon */
  29.     if rxid = -99 then exit /* Exit by caller */
  30.     if rxid = 1 then do /* buttons */
  31.         if rxval.1 = 2 then do
  32.             call save
  33.             exit
  34.         end
  35.             else if safetyQuestion() = 0 then exit
  36.     end
  37.     if rxid = 4 then /* menu */
  38.         select
  39.         when rxsubid = 2 then call clear
  40.         when rxsubid = 3 then call open
  41.         when rxsubid = 4 then call save
  42.         when rxsubid = 5 then call saveAs
  43.         when rxsubid = 6 then if safetyQuestion() = 0 then exit
  44.         when rxsubid = 7 then do
  45.             call save
  46.             exit
  47.         end
  48.     end
  49.     if rxid = 0 then call updateHelp
  50. end
  51.  
  52.  
  53. updateHelp:
  54.  
  55.     rxactive
  56.     do counter=1 to 10
  57.         if symbol("language.help.rxid.rxsubid.counter") = var
  58.             then newline = language.help.rxid.rxsubid.counter
  59.             else newline = " "
  60.         rxset '"'language.title'"' 5 counter val newline
  61.     end
  62.  
  63. return
  64.  
  65.  
  66. enabletime:
  67.  
  68.     rxset '"'language.title'"' time 200
  69.  
  70. return
  71.  
  72.  
  73. disabletime:
  74.  
  75.     rxset '"'language.title'"' time 0
  76.  
  77. return
  78.  
  79.  
  80. test:
  81.  
  82.     test = 1
  83.  
  84.     do n = 1 to 7
  85.         if values.n = '' then test = 0
  86.     end
  87.  
  88. return test
  89.  
  90.  
  91. saveAs:
  92.  
  93.     drop pattern
  94.     call save
  95.  
  96. return
  97.  
  98.  
  99. getPattern:
  100.  
  101.     arg operation
  102.  
  103.     pattern = "*.osk"
  104.  
  105.     call disabletime
  106.     rxfile operation "PATTERN" "|" value((language.)(filetitle)operation)
  107.     call enabletime
  108.  
  109.     if pattern = "*.osk" then do
  110.         drop pattern
  111.         return 1
  112.     end
  113.  
  114. return 0
  115.  
  116.  
  117. clear:
  118.  
  119.     rxset '"'language.title'"' 2 2 val 1
  120.     do counter = 1 to 7
  121.         rxset '"'language.title'"' 3 counter val
  122.     end
  123.  
  124. return
  125.  
  126.  
  127. open:
  128.  
  129.     if safetyQuestion() <> 0 then return
  130.     call clear
  131.     if getPattern(load) > 0 then return
  132.     if translate(right(pattern,4))=.osk then pattern=left(pattern,length(pattern)-4)
  133.     filename = pattern".osk"
  134.  
  135.     error = lines(filename)
  136.  
  137.     do while lines(filename) = 1
  138.         line = linein(filename)
  139.         element = 0
  140.         key = word(line,1)
  141.         value = delword(line,1,1)
  142.         if key = "SHORTNAME:" then do
  143.             element = 3
  144.             subelement = 7
  145.         end
  146.         if key = "PACKAGENAME:" then do
  147.             element = 3
  148.             subelement = 6
  149.         end
  150.         if key = "LONGNAME:" then do
  151.             element = 3
  152.             subelement = 5
  153.         end
  154.         if key = "VERSION:" then do
  155.             element = 3
  156.             subelement = 4
  157.         end
  158.         if key = "SECTION:" then do
  159.             element = 3
  160.             subelement = 3
  161.         end
  162.         if key = "DIRECTORY:" then do
  163.             element = 3
  164.             subelement = 2
  165.         end
  166.         if key = "DESCRIPTION:" then do
  167.             element = 3
  168.             subelement = 1
  169.         end
  170.         if key = "TYPE:" then do
  171.             element = 2
  172.             if value = "KONSOLE" then do 
  173.                 subelement = 1
  174.             end
  175.             else subelement = 2
  176.             value = 1
  177.         end
  178.  
  179.         if element > 0 then
  180.             rxset '"'language.title'"' element subelement val value
  181.         else error=0
  182.  
  183.     end
  184.  
  185.     call charout filename
  186.  
  187.     if error = 0 then rxsay language.error1'|'32
  188.  
  189. return
  190.  
  191. save:
  192.  
  193.     if symbol(pattern) = lit then if getPattern(save) > 0 then return
  194.  
  195.     if translate(right(pattern,4))=.osk then pattern=left(pattern,length(pattern)-4)
  196.     filename = pattern".osk"
  197.  
  198.     call SysFileDelete filename
  199.     if stream(filename,c,open) <> "READY:" then do
  200.         drop pattern
  201.         rxsay language.error2'|'64
  202.         return
  203.     end
  204.  
  205.     if rxval.2 = 1 then type = konsole
  206.     if rxval.2 = 2 then type = pmwps
  207.  
  208.     shortname = values.7
  209.     packagename = values.6
  210.     longname = values.5
  211.     version = values.4
  212.     section = values.3
  213.     directory = values.2
  214.     description = values.1
  215.  
  216.     call lineout filename,"SHORTNAME: "shortname
  217.     call lineout filename,"PACKAGENAME: "packagename
  218.     call lineout filename,"LONGNAME: "longname
  219.     call lineout filename,"VERSION: "version
  220.     call lineout filename,"SECTION: "section
  221.     call lineout filename,"DIRECTORY: "directory
  222.     call lineout filename,"DESCRIPTION: "description
  223.     call lineout filename,"TYPE: "type
  224.     call charout filename
  225.  
  226.     filename = pattern".wis"
  227.  
  228.     if shortname = "" then shortname = pattern
  229.     if packagename = "" then packagename = shortname
  230.     if longname = "" then longname = shortname
  231.     if version = "" then version = "1.0"
  232.     if section = "" then section = packagename
  233.     if directory = "" then directory = shortname
  234.     if description = "" then description = packagename
  235.  
  236.     call SysFileDelete filename
  237.     call lineout filename, "<WARPIN>"
  238.     call lineout filename, ""
  239.     call lineout filename, "<HEAD>"
  240.     call lineout filename, ""
  241.     call lineout filename, "<PCK INDEX=1"
  242.     parse var version maior'.'minor
  243.     call lineout filename,,
  244.         '   PACKAGEID="OSK\'shortname'\'packagename'\'maior'\'minor'"'
  245.     call charout filename, '   TARGET="$(OSK_DRIVE):$(OSK_'
  246.     if type = pmwps
  247.         then call charout filename, "PM"
  248.         else call charout filename, "TXT"
  249.     call lineout filename, 'PATH)\'section'\'directory'"'
  250.     call lineout filename, '   TITLE="'longname'"'
  251.     call lineout filename, ""
  252.     call lineout filename, "   SELECT NODESELECT"
  253.     call lineout filename,,
  254.         "   > This package contains "description".</pck>"
  255.     call lineout filename, "</HEAD>"
  256.     call lineout filename, ""
  257.     call lineout filename, "<BODY>"
  258.     call lineout filename, "<PAGE INDEX=1 TYPE=CONTAINER>"
  259.     call lineout filename, "<NEXTBUTTON TARGET=2>~Next</NEXTBUTTON>"
  260.     call lineout filename, "<TEXT>"
  261.     call lineout filename, "Want to change the path?"
  262.     call lineout filename, "</TEXT>"
  263.     call lineout filename, "</PAGE>"
  264.     call lineout filename, "<PAGE INDEX=2 TYPE=CONFIGURE>"
  265.     call lineout filename, "<NEXTBUTTON TARGET=0>~Install</NEXTBUTTON>"
  266.     call lineout filename, "<TEXT>"
  267.     call lineout filename, "Press install to start"
  268.     call lineout filename, "</TEXT>"
  269.     call lineout filename, "</PAGE>"
  270.     call lineout filename, "</BODY>"
  271.     call lineout filename, "</WARPIN>"
  272.     call charout filename
  273. return
  274.  
  275. initDialog:
  276.  
  277.     n = 1
  278.     rxtype.n = result
  279.     rxval.n = ' '
  280.     rxflags.n = end
  281.     rxlabel.n = ' '
  282.     rxinfo.n = 1 2
  283.     rxx.n = 120
  284.     rxy.n = 30
  285.  
  286.     n = 2
  287.     rxtype.n = radio
  288.     rxval.n = 2
  289.     rxflags.n = ' '
  290.     rxlabel.n = language.type
  291.     rxinfo.n = 2 1 150
  292.     rxx.n = 105
  293.     rxy.n = 80
  294.  
  295.     n = 3
  296.     rxtype.n = entry
  297.     rxval.n = values
  298.     values. = ' '
  299.     rxflags.n = end
  300.     rxlabel.n = (language.description)d2c(255)"|"d2c(255)
  301.     rxlabel.n = (rxlabel.n)(language.directory)(d2c(255))"|"d2c(255)
  302.     rxlabel.n = (rxlabel.n)(language.section)(d2c(255))"|"d2c(255)
  303.     rxlabel.n = (rxlabel.n)(language.version)(d2c(255))"|"d2c(255)
  304.     rxlabel.n = (rxlabel.n)(language.longname)(d2c(255))"|"d2c(255)
  305.     rxlabel.n = (rxlabel.n)(language.package)(d2c(255))"|"d2c(255)
  306.     rxlabel.n = (rxlabel.n)(language.shortname)(d2c(255))
  307.     rxinfo.n = 7 1 150
  308.     rxx.n = 180
  309.     rxy.n = 180
  310.  
  311.     n = 4
  312.     rxtype.n = menu
  313.     rxflags.n = ' '
  314.     rxinfo.n = 1 file
  315.     file.0 = language.file
  316.     file.1 = language.new
  317.     file.2 = language.load
  318.     file.3 = language.save
  319.     file.4 = language.saveas
  320.     file.5 = language.abort
  321.     file.6 = language.saveandexit
  322.     file.7 = " "
  323.  
  324.     n = 5
  325.     rxtype.n = text
  326.     rxflags.n = ' '
  327.     rxlabel.n = ' '
  328.     rxinfo.n = 10 1 200
  329.     rxx.n = 360
  330.     rxy.n = 180
  331.  
  332.     windowsize = 600 400 300 250
  333.  
  334. return n
  335.  
  336.  
  337. loadLanguage:
  338.  
  339.     arg lang
  340.     languagefile = lang".lng"
  341.     if stream(languagefile,c,query exists) = "" then languagefile = english.lng
  342.  
  343.     language.title = linein(languagefile)
  344.     language.filetitleload = linein(languagefile)
  345.     language.filetitlesave = linein(languagefile)
  346.     language.shortname = linein(languagefile)
  347.     language.package = linein(languagefile)
  348.     language.longname = linein(languagefile)
  349.     language.version = linein(languagefile)
  350.     language.section = linein(languagefile)
  351.     language.directory = linein(languagefile)
  352.     language.description = linein(languagefile)
  353.     language.type = linein(languagefile)
  354.     language.file = linein(languagefile)
  355.     language.new = linein(languagefile)
  356.     language.load = linein(languagefile)
  357.     language.save = linein(languagefile)
  358.     language.saveas = linein(languagefile)
  359.     language.abort = linein(languagefile)
  360.     language.saveandexit = linein(languagefile)
  361.     language.question1 = linein(languagefile)
  362.     language.error1 = linein(languagefile)
  363.     language.error2 = linein(languagefile)
  364.     call readHelp 2,6
  365.     call readHelp 2,5
  366.     call readHelp 2,4
  367.     call readHelp 2,3
  368.     call readHelp 2,2
  369.     call readHelp 2,1
  370.     call readHelp 2,0
  371.     call readHelp 1,1
  372.     call readHelp 1,0
  373.     call charout languagefile
  374.  
  375. return
  376.  
  377.  
  378. readHelp:
  379.  
  380.     arg forrxid, forrxsubid
  381.  
  382.     line = linein(languagefile)
  383.     do counter=1 to 10 until line = eop
  384.         language.help.forrxid.forrxsubid.counter = line
  385.         line = linein(languagefile)
  386.     end
  387.  
  388. return
  389.  
  390.  
  391. safetyQuestion:
  392.  
  393.     if values.7 = "" then return 0
  394.     rxsay language.question1'|'21
  395.     rcsQ = rc
  396.     if rcsQ = 6 then call save
  397.     if rcsQ = 2 then return 1
  398.  
  399. return 0
  400.  
  401.  
  402. startRX:
  403.  
  404.     parse arg languageOverride
  405.     if languageOverride <> "" then oldenv = value(oskwisc,languageOverride,os2environment)
  406.     '@rx.exe' '"'pathname'"'
  407.     rc = value(oskwisc,oldenv,os2environment)
  408.     exit
  409.