summaryrefslogtreecommitdiff
path: root/vms/stage_gawk_install.com
diff options
context:
space:
mode:
Diffstat (limited to 'vms/stage_gawk_install.com')
-rw-r--r--vms/stage_gawk_install.com300
1 files changed, 300 insertions, 0 deletions
diff --git a/vms/stage_gawk_install.com b/vms/stage_gawk_install.com
new file mode 100644
index 00000000..22daf7f5
--- /dev/null
+++ b/vms/stage_gawk_install.com
@@ -0,0 +1,300 @@
+$! File: stage_gawk_install.com
+$!
+$! Stages the build products to new_gnu:[...] for testing and for building
+$! a kit.
+$!
+$! If p1 starts with "R" then remove instead of install.
+$!
+$! The file PCSI_GAWK_FILE_LIST.TXT is read in to get the files other
+$! than the release notes file and the source backup file.
+$!
+$! The PCSI system can really only handle ODS-2 format filenames and
+$! assumes that there is only one source directory. It also assumes that
+$! all destination files with the same name come from the same source file.
+$!
+$!
+$! 29-Sep-2013 J. Malmberg
+$!
+$!===========================================================================
+$!
+$ arch_type = f$getsyi("ARCH_NAME")
+$ arch_code = f$extract(0, 1, arch_type)
+$!
+$ mode = "install"
+$ code = f$extract(0, 1, p1)
+$ if code .eqs. "R" .or. code .eqs. "r" then mode = "remove"
+$!
+$! First create the directories
+$!--------------------------------
+$ if mode .eqs. "install"
+$ then
+$ create/dir new_gnu:[bin]/prot=o:rwed
+$ create/dir new_gnu:[vms_bin]/prot=o:rwed
+$ create/dir new_gnu:[vms_help]/prot=o:rwed
+$ create/dir new_gnu:[lib]/prot=o:rwed
+$ create/dir new_gnu:[usr.bin]/prot=o:rwed
+$ create/dir new_gnu:[usr.include]/prot=o:rwed
+$ create/dir new_gnu:[usr.lib.gawk]/prot=o:rwed
+$ create/dir new_gnu:[usr.share.awk]/prot=o:rwed
+$ create/dir new_gnu:[usr.share.doc.gawk]/prot=o:rwed
+$ create/dir new_gnu:[usr.share.info]/prot=o:rwed
+$ create/dir new_gnu:[usr.src.gawk.extension.vms]/prot=o:rwed
+$ create/dir new_gnu:[usr.share.doc.man.man1]/prot=o:rwed
+$ endif
+$!
+$ if mode .eqs. "install"
+$ then
+$ copy [.vms]gnv_gawk_startup.com -
+ new_gnu:[vms_bin]gnv$gawk_startup.com
+$ else
+$ file = "new_gnu:[vms_bin]gnv$gawk_startup.com"
+$ if f$search(file) .nes. "" then delete 'file';*
+$ endif
+$!
+$!
+$! Read through the file list to set up aliases and rename commands.
+$!---------------------------------------------------------------------
+$ open/read flst [.vms]pcsi_gawk_file_list.txt
+$!
+$inst_alias_loop:
+$ ! Skip the aliases
+$ read/end=inst_file_loop_end flst line_in
+$ line_in = f$edit(line_in,"compress,trim,uncomment")
+$ if line_in .eqs. "" then goto inst_alias_loop
+$ pathname = f$element(0, " ", line_in)
+$ linkflag = f$element(1, " ", line_in)
+$ if linkflag .nes. "->" then goto inst_alias_done
+$ goto inst_alias_loop
+$!
+$inst_file_loop:
+$!
+$ read/end=inst_file_loop_end flst line_in
+$ line_in = f$edit(line_in,"compress,trim,uncomment")
+$ if line_in .eqs. "" then goto inst_file_loop
+$!
+$inst_alias_done:
+$!
+$!
+$! Skip the directories as we did them above.
+$! Just process the files.
+$ tdir = f$parse(line_in,,,"DIRECTORY")
+$ tdir_len = f$length(tdir)
+$ tname = f$parse(line_in,,,"NAME")
+$ lctname = f$edit(tname, "LOWERCASE")
+$ ttype = f$parse(line_in,,,"TYPE")
+$ if arch_code .eqs. "V"
+$ then
+$ tname = lctname
+$ ttype = f$edit(ttype, "LOWERCASE")
+$ tdir = f$edit(tdir, "LOWERCASE")
+$ endif
+$ if tname .eqs. "" then goto inst_file_loop
+$ if ttype .eqs. ".dir" then goto inst_file_loop
+$!
+$! if p1 starts with "R" then remove instead of install.
+$!
+$! If gnv$xxx.exe, then:
+$! Source is []gnv$gawk.exe
+$! Destination1 is new_gnu:[bin]gnv$gawk.exe
+$! Destination2 is new_gnu:[bin]xxx. (alias)
+$! Destination2 is new_gnu:[bin]xxx.exe (alias)
+$! We put all in new_gnu:[bin] instead of some in [usr.bin] because
+$! older GNV kits incorrectly put some images in [bin] and [bin]
+$! comes first in the search list.
+$ if f$locate("gnv$", tname) .eq. 0
+$ then
+$ myfile_len = f$length(tname)
+$ myfile = f$extract(4, myfile_len, tname)
+$ source = "[]''myfile'''ttype'"
+$ dest1 = "new_gnu:[bin]''tname'''ttype'"
+$ dest2 = "new_gnu:[bin]''myfile'."
+$ dest3 = "new_gnu:[bin]''myfile'.exe"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest1) .eqs. "" then copy 'source' 'dest1'
+$ if f$search(dest2) .eqs. "" then set file/enter='dest2' 'dest1'
+$ if f$search(dest3) .eqs. "" then set file/enter='dest3' 'dest1'
+$ else
+$ if f$search(dest2) .nes. "" then set file/remove 'dest2';*
+$ if f$search(dest3) .nes. "" then set file/remove 'dest3';*
+$ if f$search(dest1) .nes. "" then delete 'dest1';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If lib.gawk] then
+$! source is sys$disk:[]
+$! dest is new_gnu:[usr.lib.gawk]
+$ if f$locate("lib.gawk]", tdir) .lt. tdir_len
+$ then
+$! ! Not yet available on VAX/VMS
+$ if arch_code .eqs. "V" then goto inst_file_loop
+$!
+$ source = "[]''tname'''ttype'"
+$ dest = "new_gnu:[usr.lib.gawk]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If .vms_bin] then
+$! source is sys$disk:[]
+$! dest is [vms_bin]
+$ if (f$locate("vms_bin]", tdir) .lt. tdir_len)
+$ then
+$ if (ttype .eqs. ".cld")
+$ then
+$ source = "sys$disk:[]''tname'''ttype'"
+$ else
+$ source = "sys$disk:[.vms]''tname'''ttype'"
+$ endif
+$ dest = "new_gnu:[vms_bin]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If .vms_hlp] then
+$! source is sys$disk:[.vms]
+$! dest is [vms_help]
+$ if (f$locate("vms_help]", tdir) .lt. tdir_len) .and. (ttype .eqs. ".hlp")
+$ then
+$ source = "sys$disk:[.vms]''tname'''ttype'"
+$ dest = "new_gnu:[vms_help]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If doc.gawk] then
+$! source is sys$disk:[] or [.readme_d]
+$! dest is [usr.share.doc.gawk]
+$ if f$locate(".doc.gawk]", tdir) .lt. tdir_len
+$ then
+$ if lctname .eqs. "readme" .and. ttype .nes. "."
+$ then
+$ source = "sys$disk:[.README_D]''tname'''ttype'"
+$ if f$search(source) .eqs. ""
+$ then
+$! ! This may be an NFS mangled name on VAX.
+$ stype = ttype - "."
+$ if stype .nes. "vms" then stype = "$" + stype
+$ source = "sys$disk:[.$README_$D]$README.''stype'"
+$ endif
+$ else
+$ source = "sys$disk:[]''tname'''ttype'"
+$ if f$search(source) .eqs. ""
+$ then
+$ source = "sys$disk:[]$''tname'''ttype'"
+$ endif
+$ endif
+$ dest = "new_gnu:[usr.share.doc.gawk]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If .awk] then
+$! source is sys$disk:[.awklib.eg.lib]
+$! dest is new_gnu:[usr.share.awk]
+$ if f$locate(".awk]", tdir) .lt. tdir_len
+$ then
+$ source = "[.awklib.eg.lib]''tname'''ttype'"
+$ dest = "new_gnu:[usr.share.awk]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If *.info then
+$! source is [.doc]gawk.info
+$! dest is [.usr.share.info]
+$ if ttype .eqs. ".info"
+$ then
+$ source = "[.doc]''tname'''ttype'"
+$ dest = "new_gnu:[usr.share.info]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If *.h then
+$! source is []*.h
+$! dest is [.usr.include]
+$ if ttype .eqs. ".h"
+$ then
+$ source = "[]''tname'''ttype'"
+$ dest = "new_gnu:[usr.include]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If *.opt then
+$! source is [.vms]gawk_plugin.opt
+$! dest is [.usr.src.gawk.extension.vms]
+$ if ttype .eqs. ".opt"
+$ then
+$ source = "[.vms]''tname'''ttype'"
+$ dest = "new_gnu:[usr.src.gawk.extension.vms]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$! If xxx.1 then
+$! source is [.doc]xxx.1
+$! dest is [usr.share.man.man1]
+$ if ttype .eqs. ".1"
+$ then
+$ source = "[.doc]''tname'''ttype'"
+$ dest = "new_gnu:[usr.share.man.man1]''tname'''ttype'"
+$ if mode .eqs. "install"
+$ then
+$ if f$search(dest) .eqs. "" then copy 'source' 'dest'
+$ else
+$ if f$search(dest) .nes. "" then delete 'dest';*
+$ endif
+$ goto inst_file_loop
+$ endif
+$!
+$ goto inst_file_loop
+$!
+$inst_file_loop_end:
+$!
+$close flst
+$!
+$all_exit:
+$ exit