quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

build_gnv_curl_pcsi_text.com (6037B)


      1 $! File: Build_GNV_curl_pcsi_text.com
      2 $!
      3 $! Build the *.pcsi$text file from the four components:
      4 $!    1. Generated =product header section
      5 $!    2. [--]readme. file from the Curl distribution, modified to fit
      6 $!       a pcsi$text file format.
      7 $!    3. [--]copying file from the Curl distribution, modified to fit
      8 $!       a pcsi$text file format.
      9 $!    4. Generated Producer section.
     10 $!
     11 $! Set the name of the release notes from the GNV_PCSI_FILENAME_BASE
     12 $!
     13 $! Copyright (C) John Malmberg
     14 $!
     15 $! Permission to use, copy, modify, and/or distribute this software for any
     16 $! purpose with or without fee is hereby granted, provided that the above
     17 $! copyright notice and this permission notice appear in all copies.
     18 $!
     19 $! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     20 $! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     21 $! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     22 $! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     23 $! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     24 $! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
     25 $! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     26 $!
     27 $! SPDX-License-Identifier: ISC
     28 $!
     29 $!===========================================================================
     30 $!
     31 $ kit_name = f$trnlnm("GNV_PCSI_KITNAME")
     32 $ if kit_name .eqs. ""
     33 $ then
     34 $   write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
     35 $   goto all_exit
     36 $ endif
     37 $ producer = f$trnlnm("GNV_PCSI_PRODUCER")
     38 $ if producer .eqs. ""
     39 $ then
     40 $   write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
     41 $   goto all_exit
     42 $ endif
     43 $ producer_full_name = f$trnlnm("GNV_PCSI_PRODUCER_FULL_NAME")
     44 $ if producer_full_name .eqs. ""
     45 $ then
     46 $   write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run."
     47 $   goto all_exit
     48 $ endif
     49 $!
     50 $!
     51 $! Parse the kit name into components.
     52 $!---------------------------------------
     53 $ producer = f$element(0, "-", kit_name)
     54 $ base = f$element(1, "-", kit_name)
     55 $ product = f$element(2, "-", kit_name)
     56 $ mmversion = f$element(3, "-", kit_name)
     57 $ majorver = f$extract(0, 3, mmversion)
     58 $ minorver = f$extract(3, 2, mmversion)
     59 $ updatepatch = f$element(4, "-", kit_name)
     60 $ if updatepatch .eqs. "-" then updatepatch = ""
     61 $!
     62 $!
     63 $ product_line = "=product ''producer' ''base' ''product'"
     64 $ if updatepatch .eqs. ""
     65 $ then
     66 $     product_name = " ''majorver'.''minorver'"
     67 $ else
     68 $     product_name = " ''majorver'.''minorver'-''updatepatch'"
     69 $ endif
     70 $ product_line = product_line + " ''product_name' full"
     71 $!
     72 $!
     73 $! If this is VAX and the file is on NFS, the names may be mangled.
     74 $!-----------------------------------------------------------------
     75 $ readme_file = ""
     76 $ if f$search("[--]readme.") .nes. ""
     77 $ then
     78 $   readme_file = "[--]readme."
     79 $ else
     80 $   if f$search("[--]$README.") .nes. ""
     81 $   then
     82 $       readme_file = "[--]$README."
     83 $   else
     84 $       write sys$output "Can not find readme file."
     85 $       goto all_exit
     86 $   endif
     87 $ endif
     88 $ copying_file = ""
     89 $ if f$search("[--]copying.") .nes. ""
     90 $ then
     91 $   copying_file = "[--]copying."
     92 $ else
     93 $   if f$search("[--]$COPYING.") .nes. ""
     94 $   then
     95 $       copying_file = "[--]$COPYING."
     96 $   else
     97 $       write sys$output "Can not find copying file."
     98 $       goto all_exit
     99 $   endif
    100 $ endif
    101 $!
    102 $! Create the file as a VMS text file.
    103 $!----------------------------------------
    104 $ base_file = kit_name
    105 $ create 'base_file'.pcsi$text
    106 $!
    107 $!
    108 $! Start building file.
    109 $!----------------------
    110 $ open/append ptxt 'base_file'.pcsi$text
    111 $ write ptxt product_line
    112 $!
    113 $!
    114 $! First insert the Readme file.
    115 $!
    116 $ open/read rf 'readme_file'
    117 $!
    118 $ write ptxt "1 'PRODUCT"
    119 $ write ptxt "=prompt ''producter' ''product' for OpenVMS"
    120 $!
    121 $rf_loop:
    122 $   read/end=rf_loop_end rf line_in
    123 $   if line_in .nes. ""
    124 $   then
    125 $!    PCSI files use the first character in for their purposes.
    126 $!--------------------------------------------------------------
    127 $     first_char = f$extract(0, 1, line_in)
    128 $     if first_char .nes. " " then line_in = " " + line_in
    129 $   endif
    130 $   write ptxt line_in
    131 $   goto rf_loop
    132 $rf_loop_end:
    133 $ close rf
    134 $!
    135 $!
    136 $! Now add in the copying file
    137 $!--------------------------------
    138 $ write ptxt ""
    139 $ write ptxt "1 'NOTICE"
    140 $ write ptxt ""
    141 $!
    142 $ open/read cf 'copying_file'
    143 $!
    144 $cf_loop:
    145 $   read/end=cf_loop_end cf line_in
    146 $   if line_in .nes. ""
    147 $   then
    148 $!    PCSI files use the first character in for their purposes.
    149 $!--------------------------------------------------------------
    150 $     first_char = f$extract(0, 1, line_in)
    151 $     if first_char .nes. " " then line_in = " " + line_in
    152 $   endif
    153 $   write ptxt line_in
    154 $   goto cf_loop
    155 $cf_loop_end:
    156 $ close cf
    157 $!
    158 $! Now we need the rest of the boiler plate.
    159 $!--------------------------------------------
    160 $ write ptxt ""
    161 $ write ptxt "1 'PRODUCER"
    162 $ write ptxt "=prompt ''producer_full_name'"
    163 $ write ptxt -
    164  "This software product is provided by ''producer_full_name' with no warranty."
    165 $!
    166 $ arch_type = f$getsyi("ARCH_NAME")
    167 $ node_swvers = f$getsyi("node_swvers")
    168 $ vernum = f$extract(1, f$length(node_swvers), node_swvers)
    169 $ majver = f$element(0, ".", vernum)
    170 $ minverdash = f$element(1, ".", vernum)
    171 $ minver = f$element(0, "-", minverdash)
    172 $ dashver = f$element(1, "-", minverdash)
    173 $ if dashver .eqs. "-" then dashver = ""
    174 $ vmstag = majver + minver + dashver
    175 $ code = f$extract(0, 1, arch_type)
    176 $!
    177 $ write ptxt "1 NEED_VMS''vmstag'"
    178 $ write ptxt -
    179    "=prompt OpenVMS ''vernum' or later is not installed on your system."
    180 $ write ptxt "This product requires OpenVMS ''vernum' or later to function."
    181 $ write ptxt "1 NEED_ZLIB"
    182 $ write ptxt "=prompt ZLIB 1.2-8 or later is not installed on your system."
    183 $ write ptxt "This product requires ZLIB 1.2-8 or later to function."
    184 $ write ptxt "1 SOURCE"
    185 $ write ptxt "=prompt Source modules for ''product'"
    186 $ write ptxt "The Source modules for ''product' will be installed."
    187 $ write ptxt "1 RELEASE_NOTES"
    188 $ write ptxt "=prompt Release notes are available in the [SYSHLP] directory."
    189 $!
    190 $ close ptxt
    191 $!
    192 $!
    193 $!
    194 $all_exit:
    195 $ exit