Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XPDCUSTU

XPDCUSTU.m

Go to the documentation of this file.
  1. XPDCUSTU ;SLC/STAFF-SITE TRACKING UPDATE ALL VERSIONS, UTILITY ;7/20/94 15:38 [ 04/02/2003 8:29 AM ]
  1. ;;8.0;KERNEL;**1005,1007**;APR 1, 2003
  1. ;;7.1;Kernel;**22,35**;Oct 25, 1993
  1. ;
  1. VERSION ; from XPDCUSTP
  1. ; return version and date of package
  1. N IFN
  1. ;
  1. S IFN=+$O(^DIC(9.4,"B",PACKAGE,0))
  1. S VERSION=$G(^DIC(9.4,IFN,"VERSION"))
  1. S DATE=$$DATE(IFN,VERSION)
  1. S ROUTINES=$P(^TMP("XPDCUP",$J,PACKAGE),U,4) I '$L(ROUTINES) Q
  1. S ROUTINE="" F CNT=1:1 S ROUTINE=$P(ROUTINES,",",CNT) Q:ROUTINE="" D
  1. .S VERSION=$$MAX(VERSION,$$VER(ROUTINE))
  1. ; if package installed but no 'CURRENT VERSION' in Package file
  1. I VERSION,'DATE S DATE=$$DATE(IFN,VERSION)
  1. I 'DATE,VERSION,VERSION'[".",VERSION=+VERSION S VERSION=VERSION_".0",DATE=$$DATE(IFN,VERSION)
  1. Q
  1. ;
  1. DATE(IFN,VERSION) ; $$(package ifn,version) -> date of install
  1. N IFN1
  1. ;
  1. I 'VERSION Q ""
  1. S IFN1=+$O(^DIC(9.4,IFN,22,"B",VERSION,0))
  1. Q $P($G(^DIC(9.4,IFN,22,IFN1,0)),U,3)
  1. ;
  1. VER(ROUTINE) ; $$(routine) -> version #
  1. N STRIP,VER
  1. ;
  1. ; get version # from 2nd line of routine
  1. I '$L(ROUTINE) Q ""
  1. S VER=$P($T(@ROUTINE+1^@ROUTINE),";",3) I '$L(VER) Q ""
  1. ;
  1. ; strip spaces and text from version #
  1. F Q:$E(VER)'=" " S VER=$E(VER,2,245)
  1. F STRIP="VERSION","Version","version","V","v" I $E(VER,1,$L(STRIP))=STRIP S VER=$E(VER,$L(STRIP)+1,$L(VER)) Q
  1. F Q:$E(VER)'=" " S VER=$E(VER,2,245)
  1. Q $P(VER," ")
  1. ;
  1. MAX(V1,V2) ; $$(version1,version2) -> highest version #
  1. I V1=V2 Q V1
  1. I +V1>+V2 Q V1
  1. I +V2>+V1 Q V2
  1. I V1'?.NP,V1?.ANP,V2?.NP Q V2 ;version1 is test, version2 is verified
  1. I V2'?.NP,V2?.ANP,V1?.NP Q V1 ;version2 is test, version1 is verified
  1. I V1?.NP,V2?.NP Q $S($L(V1)>$L(V2):V1,1:V2) ;ex. 4.0 vs 4
  1. I V1["T",V2["V" Q V2 ;test vs verify
  1. I V1["V",V2["T" Q V1 ;" "
  1. I V1["T",V2["T" Q $S(+$P(V1,"T",2)>+$P(V2,"T",2):V1,1:V2) ;highest test
  1. I V1["V",V2["V" Q $S(+$P(V1,"V",2)>+$P(V2,"V",2):V1,1:V2) ;highest verify
  1. Q V1 ;give up