$! TVERIFY.COM
$
$	__arch := VAX
$	if f$getsyi("cpu") .ge. 128 then -
	   __arch := f$edit( f$getsyi( "ARCH_NAME"), "UPCASE")
$	if __arch .eqs. "" then __arch := UNK
$!
$	line_max = 255 ! Could be longer on modern non-VAX.
$	temp_file_name = "certs_"+ f$getjpi( "", "PID")+ ".tmp"
$	exe_dir := sys$disk:[-.'__arch'.exe.apps]
$	cmd = "mcr ''exe_dir'openssl verify ""-CAfile"" ''temp_file_name'"
$	cmd_len = f$length( cmd)
$	pems = "[-.certs...]*.pem"
$!
$!	Concatenate all the certificate files.
$!
$	copy /concatenate 'pems' 'temp_file_name'
$!
$!	Loop through all the certificate files.
$!
$	args = ""
$	old_f :=
$ loop_file: 
$	    f = f$search( pems)
$	    if ((f .nes. "") .and. (f .nes. old_f))
$	    then
$	      old_f = f
$!
$!	      If this file name would over-extend the command line, then
$!	      run the command now.
$!
$	      if (cmd_len+ f$length( args)+ 1+ f$length( f) .gt. line_max)
$	      then
$	         if (args .eqs. "") then goto disaster
$	         'cmd''args'
$	         args = ""
$	      endif
$!	      Add the next file to the argument list.
$	      args = args+ " "+ f
$	   else
$!            No more files in the list
$	      goto loop_file_end
$	   endif
$	goto loop_file
$	loop_file_end:
$!
$!	Run the command for any left-over arguments.
$!
$	if (args .nes. "")
$	then
$	   'cmd''args'
$	endif
$!
$!	Delete the temporary file.
$!
$	if (f$search( "''temp_file_name';*") .nes. "") then -
	 delete 'temp_file_name';*
$!
$	exit
$!
$	disaster:
$	write sys$output "   Command line too long.  Doomed."
$!
