mirror of
https://github.com/yabwon/SAS_PACKAGES.git
synced 2026-01-06 14:50:04 +00:00
update in version checking
update in version checking
This commit is contained in:
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
/*** HELP START ***/
|
||||
/*** HELP START ***/
|
||||
|
||||
/**############################################################################**/
|
||||
/* */
|
||||
@@ -538,7 +538,7 @@ data _null_;
|
||||
packageReqPackages = lowcase(symget('packageReqPackages'));
|
||||
/* try to load required packages */
|
||||
put 'data _null_ ; ';
|
||||
put ' length req name $ 64 SYSloadedPackages $ 32767; ';
|
||||
put ' length req name $ 64 vers verR 8 SYSloadedPackages $ 32767; ';
|
||||
put ' if SYMEXIST("SYSloadedPackages") = 1 and SYMGLOBL("SYSloadedPackages") = 1 then ';
|
||||
put ' do; ';
|
||||
put ' do until(EOF); ';
|
||||
@@ -550,19 +550,24 @@ data _null_;
|
||||
|
||||
put ' declare hash LP(); ';
|
||||
put ' LP.defineKey("name"); ';
|
||||
put ' LP.defineData("vers"); ';
|
||||
put ' LP.defineDone(); ';
|
||||
put ' do _N_ = 1 to countw(SYSloadedPackages); ';
|
||||
put ' name = scan(SYSloadedPackages, _N_); ';
|
||||
put ' req = scan(SYSloadedPackages, _N_, " "); ';
|
||||
put ' name = lowcase(strip(scan(req, 1, "("))); ';
|
||||
put ' vers = input(compress(scan(req,-1, "("), ".", "KD"),best32.); ';
|
||||
put ' _RC_ = LP.add(); ';
|
||||
put ' end; ';
|
||||
|
||||
put ' do req = ' / packageReqPackages / ' ; ';
|
||||
put ' name = lowcase(strip(scan(req, 1, " "))); ';
|
||||
put ' vers = lowcase(compress(scan(req,-1, " "), ".", "KD")); ';
|
||||
put ' if LP.check() ne 0 then ';
|
||||
/* put ' req = compress(req, "(.)", "KDF"); ';*/
|
||||
put ' name = lowcase(strip(scan(req, 1, "("))); ';
|
||||
put ' verR = input(compress(scan(req,-1, "("), ".", "KD"),best32.); vers = .; ';
|
||||
put ' LP_find = LP.find(); ';
|
||||
put ' if (LP_find ne 0) or (LP_find = 0 and . < vers < verR) then ';
|
||||
put ' do; ';
|
||||
put ' put "NOTE: Trying to install required SAS package " req; ';
|
||||
put ' call execute(cats(''%nrstr(%loadPackage('', name, ", requiredVersion = ", vers, "))")); ';
|
||||
put ' call execute(cats(''%nrstr(%loadPackage('', name, ", requiredVersion = ", verR, "))")); ';
|
||||
put ' end ; ';
|
||||
put ' end ; ';
|
||||
put ' stop; ';
|
||||
@@ -581,21 +586,26 @@ data _null_;
|
||||
|
||||
put ' declare hash LP(); ';
|
||||
put ' LP.defineKey("name"); ';
|
||||
put ' LP.defineData("vers"); ';
|
||||
put ' LP.defineDone(); ';
|
||||
put ' do _N_ = 1 to countw(SYSloadedPackages); ';
|
||||
put ' name = scan(SYSloadedPackages, _N_); ';
|
||||
put ' req = scan(SYSloadedPackages, _N_, " "); ';
|
||||
put ' name = lowcase(strip(scan(req, 1, "("))); ';
|
||||
put ' vers = input(compress(scan(req,-1, "("), ".", "KD"),best32.); ';
|
||||
put ' _RC_ = LP.add(); ';
|
||||
put ' end; ';
|
||||
|
||||
put ' missingPackagr = 0; ';
|
||||
put ' do req = ' / packageReqPackages / ' ; ';
|
||||
put ' name = lowcase(strip(scan(req, 1, " "))); ';
|
||||
put ' vers = lowcase(compress(scan(req,-1, " "), ".", "KD")); ';
|
||||
put ' if LP.check() ne 0 then ';
|
||||
/* put ' req = compress(req, "(.)", "KDF"); ';*/
|
||||
put ' name = lowcase(strip(scan(req, 1, "("))); ';
|
||||
put ' verR = input(compress(scan(req,-1, "("), ".", "KD"),best32.); vers = .; ';
|
||||
put ' LP_find = LP.find(); ';
|
||||
put ' if (LP_find ne 0) or (LP_find = 0 and . < vers < verR) then ';
|
||||
put ' do; ';
|
||||
put ' missingPackagr = 1; ';
|
||||
put ' put "ERROR: SAS package " req "is missing! Download it and" ; ';
|
||||
put ' put ''ERROR- use %loadPackage('' name ", requiredVersion = " vers ") to load it." ;';
|
||||
put ' put ''ERROR- use %loadPackage('' name ", requiredVersion = " verR ") to load it." ;';
|
||||
put ' end ; ';
|
||||
put ' end ; ';
|
||||
put ' if missingPackagr then call symputX("packageRequiredErrors", 1, "L"); ';
|
||||
@@ -605,8 +615,8 @@ data _null_;
|
||||
put ' put "ERROR: No package loaded!"; ';
|
||||
put ' call symputX("packageRequiredErrors", 1, "L"); ';
|
||||
put ' do req = ' / packageReqPackages / ' ; ';
|
||||
put ' name = lowcase(strip(scan(req, 1, " "))); ';
|
||||
put ' vers = lowcase(compress(scan(req,-1, " "), ".", "KD")); ';
|
||||
put ' name = lowcase(strip(scan(req, 1, "("))); ';
|
||||
put ' vers = lowcase(compress(scan(req,-1, "("), ".", "KD")); ';
|
||||
put ' put "ERROR: SAS package " req "is missing! Download it and" ; ';
|
||||
put ' put ''ERROR- use %loadPackage('' name ", requiredVersion = " vers ") to load it." ; ';
|
||||
put ' end ; ';
|
||||
@@ -673,31 +683,31 @@ data _null_;
|
||||
end;
|
||||
|
||||
/* update SYSloadedPackages global macrovariable */
|
||||
put ' data _null_ ; ';
|
||||
put ' length SYSloadedPackages $ 32767; ';
|
||||
put ' if SYMEXIST("SYSloadedPackages") = 1 and SYMGLOBL("SYSloadedPackages") = 1 then ';
|
||||
put ' do; ';
|
||||
put ' do until(EOF); ';
|
||||
put ' set sashelp.vmacro(where=(scope="GLOBAL" and name="SYSLOADEDPACKAGES")) end=EOF; ';
|
||||
put ' substr(SYSloadedPackages, 1+offset, 200) = value; ';
|
||||
put ' end; ';
|
||||
put ' SYSloadedPackages = cats("#", translate(strip(SYSloadedPackages), "#", " "), "#"); ';
|
||||
put ' data _null_ ; ';
|
||||
put ' length SYSloadedPackages $ 32767; ';
|
||||
put ' if SYMEXIST("SYSloadedPackages") = 1 and SYMGLOBL("SYSloadedPackages") = 1 then ';
|
||||
put ' do; ';
|
||||
put ' do until(EOF); ';
|
||||
put ' set sashelp.vmacro(where=(scope="GLOBAL" and name="SYSLOADEDPACKAGES")) end=EOF; ';
|
||||
put ' substr(SYSloadedPackages, 1+offset, 200) = value; ';
|
||||
put ' end; ';
|
||||
put ' SYSloadedPackages = cats("#", translate(strip(SYSloadedPackages), "#", " "), "#"); ';
|
||||
|
||||
put " if INDEX(lowcase(SYSloadedPackages), '#%lowcase(&packageName.)#') = 0 then ";
|
||||
put ' do; ';
|
||||
put " SYSloadedPackages = catx('#', SYSloadedPackages, '&packageName.'); ";
|
||||
put ' SYSloadedPackages = compbl(translate(SYSloadedPackages, " ", "#")); ';
|
||||
put ' call symputX("SYSloadedPackages", SYSloadedPackages, "G"); ';
|
||||
put ' put "NOTE: " SYSloadedPackages = ; ';
|
||||
put ' end ; ';
|
||||
put ' end; ';
|
||||
put ' else ';
|
||||
put ' do; ';
|
||||
put " call symputX('SYSloadedPackages', '&packageName.', 'G'); ";
|
||||
put " put 'NOTE: SYSloadedPackages = &packageName.'; ";
|
||||
put ' end; ';
|
||||
put ' stop; ';
|
||||
put 'run; ' / ;
|
||||
put " if INDEX(lowcase(SYSloadedPackages), '#%lowcase(&packageName.(&packageVersion.))#') = 0 then ";
|
||||
put ' do; ';
|
||||
put " SYSloadedPackages = catx('#', SYSloadedPackages, '&packageName.(&packageVersion.)'); ";
|
||||
put ' SYSloadedPackages = compbl(translate(SYSloadedPackages, " ", "#")); ';
|
||||
put ' call symputX("SYSloadedPackages", SYSloadedPackages, "G"); ';
|
||||
put ' put "NOTE: " SYSloadedPackages = ; ';
|
||||
put ' end ; ';
|
||||
put ' end; ';
|
||||
put ' else ';
|
||||
put ' do; ';
|
||||
put " call symputX('SYSloadedPackages', '&packageName.(&packageVersion.)', 'G'); ";
|
||||
put " put 'NOTE: SYSloadedPackages = &packageName.(&packageVersion.)'; ";
|
||||
put ' end; ';
|
||||
put ' stop; ';
|
||||
put 'run; ' / ;
|
||||
|
||||
put '%put NOTE- ;';
|
||||
put '%put NOTE: '"Loading package &packageName., version &packageVersion., license &packageLicense.;";
|
||||
@@ -862,13 +872,13 @@ data _null_;
|
||||
%do;
|
||||
length packageReqPackages $ 32767;
|
||||
packageReqPackages = lowcase(symget('packageReqPackages'));
|
||||
/* try to load required packages */
|
||||
/* note to unload required packages */
|
||||
put 'data _null_ ; ';
|
||||
put ' length req name $ 64; ';
|
||||
put ' put "NOTE-" / "NOTE: To unload additional required SAS packages execute: " / "NOTE-"; ';
|
||||
put ' do req = ' / packageReqPackages / ' ; ';
|
||||
put ' name = strip(scan(req, 1, " ")); ';
|
||||
put ' put ''NOTE- %unloadPackage( '' name ")" ; ';
|
||||
put ' name = strip(scan(req, 1, "(")); ';
|
||||
put ' put '' %unloadPackage( '' name ")" ; ';
|
||||
put ' end ; ';
|
||||
put ' put "NOTE-" / "NOTE-"; stop; ';
|
||||
put 'run; ';
|
||||
@@ -876,26 +886,26 @@ data _null_;
|
||||
|
||||
|
||||
/* update SYSloadedPackages global macrovariable */
|
||||
put ' data _null_ ; ';
|
||||
put ' length SYSloadedPackages $ 32767; ';
|
||||
put ' if SYMEXIST("SYSloadedPackages") = 1 and SYMGLOBL("SYSloadedPackages") = 1 then ';
|
||||
put ' do; ';
|
||||
put ' do until(EOF); ';
|
||||
put ' set sashelp.vmacro(where=(scope="GLOBAL" and name="SYSLOADEDPACKAGES")) end=EOF; ';
|
||||
put ' substr(SYSloadedPackages, 1+offset, 200) = value; ';
|
||||
put ' end; ';
|
||||
put ' SYSloadedPackages = cats("#", translate(strip(SYSloadedPackages), "#", " "), "#"); ';
|
||||
put ' data _null_ ; ';
|
||||
put ' length SYSloadedPackages $ 32767; ';
|
||||
put ' if SYMEXIST("SYSloadedPackages") = 1 and SYMGLOBL("SYSloadedPackages") = 1 then ';
|
||||
put ' do; ';
|
||||
put ' do until(EOF); ';
|
||||
put ' set sashelp.vmacro(where=(scope="GLOBAL" and name="SYSLOADEDPACKAGES")) end=EOF; ';
|
||||
put ' substr(SYSloadedPackages, 1+offset, 200) = value; ';
|
||||
put ' end; ';
|
||||
put ' SYSloadedPackages = cats("#", translate(strip(SYSloadedPackages), "#", " "), "#"); ';
|
||||
|
||||
put " if INDEX(lowcase(SYSloadedPackages), '#%lowcase(&packageName.)#') > 0 then ";
|
||||
put ' do; ';
|
||||
put " SYSloadedPackages = tranwrd(SYSloadedPackages, '#&packageName.#', '##'); ";
|
||||
put ' SYSloadedPackages = compbl(translate(SYSloadedPackages, " ", "#")); ';
|
||||
put ' call symputX("SYSloadedPackages", SYSloadedPackages, "G"); ';
|
||||
put ' put "NOTE: " SYSloadedPackages = ; ';
|
||||
put ' end ; ';
|
||||
put ' end; ';
|
||||
put ' stop; ';
|
||||
put 'run; ' / ;
|
||||
put " if INDEX(lowcase(SYSloadedPackages), '#%lowcase(&packageName.(&packageVersion.))#') > 0 then ";
|
||||
put ' do; ';
|
||||
put " SYSloadedPackages = tranwrd(SYSloadedPackages, '#&packageName.(&packageVersion.)#', '##'); ";
|
||||
put ' SYSloadedPackages = compbl(translate(SYSloadedPackages, " ", "#")); ';
|
||||
put ' call symputX("SYSloadedPackages", SYSloadedPackages, "G"); ';
|
||||
put ' put "NOTE: " SYSloadedPackages = ; ';
|
||||
put ' end ; ';
|
||||
put ' end; ';
|
||||
put ' stop; ';
|
||||
put 'run; ' / ;
|
||||
|
||||
|
||||
put '%put NOTE: '"Unloading package &packageName., version &packageVersion., license &packageLicense.;";
|
||||
@@ -943,6 +953,29 @@ data _null_;
|
||||
put ' if upcase(strip(_infile_)) = "DESCRIPTION START:" then printer = 1; ';
|
||||
put ' end; ';
|
||||
put ' else stop; ';
|
||||
|
||||
%if %bquote(&packageReqPackages.) ne %then
|
||||
%do;
|
||||
length packageReqPackages $ 32767;
|
||||
packageReqPackages = symget('packageReqPackages');
|
||||
put ' length req $ 64; ';
|
||||
put ' put ; put " Required SAS Packages: "; ';
|
||||
put ' do req = ' / packageReqPackages / ' ; ';
|
||||
put ' put " " req; ';
|
||||
put ' end ; ';
|
||||
%end;
|
||||
|
||||
%if %bquote(&packageRequired.) ne %then
|
||||
%do;
|
||||
length packageRequired $ 32767;
|
||||
packageRequired = symget('packageRequired');
|
||||
put ' length req $ 64; ';
|
||||
put ' put ; put " Required SAS Components: "; ';
|
||||
put ' do req = ' / packageRequired / ' ; ';
|
||||
put ' put " " req; ';
|
||||
put ' end ; ';
|
||||
%end;
|
||||
|
||||
put 'run; ' /;
|
||||
|
||||
/* license info */
|
||||
|
||||
1167
generatePackage.sas_bckp2
Normal file
1167
generatePackage.sas_bckp2
Normal file
File diff suppressed because it is too large
Load Diff
BIN
macroarray.zip
BIN
macroarray.zip
Binary file not shown.
BIN
sqlinds.zip
BIN
sqlinds.zip
Binary file not shown.
Reference in New Issue
Block a user