SAS Packages Framework, version 20251231

SAS Packages Framework, version 20251231

Changes:
- New macro: %bundlePackages().
- New macro: %unbundlePackages().
- Bug fix in %verifyPackage() macro.
- Minor updates in %generatePackage(), %listPackages(), and %relocatePackage() macros.
- Documentation updated.
This commit is contained in:
Bart Jablonski
2025-12-31 15:26:35 +01:00
parent a41153746f
commit cf74f74628
24 changed files with 2081 additions and 131 deletions

View File

@@ -3,7 +3,7 @@
Macro to generate SAS packages.
Version 20251228
Version 20251231
A SAS package is a zip file containing a group
of SAS codes (macros, functions, data steps generating
@@ -53,7 +53,7 @@
when empty takes buildLocation */
)/ secure minoperator
/*** HELP END ***/
des = 'Macro to generate SAS packages, version 20251228. Run %generatePackage() for help info.'
des = 'Macro to generate SAS packages, version 20251231. Run %generatePackage() for help info.'
;
%if (%superq(filesLocation) = ) OR (%qupcase(&filesLocation.) = HELP) %then
%do;
@@ -68,7 +68,7 @@ des = 'Macro to generate SAS packages, version 20251228. Run %generatePackage()
%put ### This is short help information for the `generatePackage` macro #;
%put #------------------------------------------------------------------------------------#;
%put # #;
%put # Macro to generate SAS packages, version `20251228` #;
%put # Macro to generate SAS packages, version `20251231` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -166,7 +166,7 @@ des = 'Macro to generate SAS packages, version 20251228. Run %generatePackage()
%let filesWithCodes = WORK._%sysfunc(datetime(), hex16.)_;
%let _DESCR_ = _%sysfunc(datetime(), hex6.)d;
%let _LIC_ = _%sysfunc(datetime(), hex6.)l;
%let _DUMMY_ = _%sysfunc(datetime(), hex6.)_;
%let _DUMMY_ = d%sysfunc(datetime(), hex6.)d;
/* Verify source existence */
%if 0=%sysfunc(FILEEXIST(%superq(filesLocation))) %then
@@ -195,6 +195,16 @@ des = 'Macro to generate SAS packages, version 20251228. Run %generatePackage()
%end;
%put NOTE: Build location is: %superq(buildLocation).;
data _null_;
length path $ 4096;
do x='filesLocation','buildLocation';
path = symget(x);
str = kcompress(path,'({[<_ !@#$%^&*-=+/\?"'';:|~`>]})','pdfs');
if str NE " " then put "NOTE: There are non-ASCII characters in the " x "path: " str
/ "NOTE- If you are working with SAS9.4M7 or earlier it may cause problems.";
end;
run;
/* collect package metadata from the description.sas file */
filename &_DESCR_. "&filesLocation./description.sas" lrecl = 1024;
/* file contains licence */
@@ -940,7 +950,7 @@ title6 "MD5 hashed fileref of package lowcase name: &_PackageFileref_.";
title&_titleNumber_. "Package ZIP file location is: &buildLocation.";
%end;
footnote1 "SAS Packages Framework, version 20251228";
footnote1 "SAS Packages Framework, version 20251231";
proc print
data = &filesWithCodes.(drop=base build folderRef fileRef rc folderid _abort_ fileId additionalContent)
@@ -1759,7 +1769,7 @@ data _null_;
%end;
put +(-1) '`.;'''
/ ' !! '' %put The macro generated: '' !! put(dtCASLudf, E8601DT19.-L) !! ";"'
/ ' !! '' %put with the SAS Packages Framework version 20251228.;'''
/ ' !! '' %put with the SAS Packages Framework version 20251231.;'''
/ ' !! '' %put ****************************************************************************;'''
/ ' !! '' %GOTO theEndOfTheMacro;'''
/ ' !! '' %end;''' ;
@@ -1923,7 +1933,7 @@ data _null_;
%end;
put +(-1) '`.; '' !!' /
''' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; '' !! ' /
''' %put with the SAS Packages Framework version 20251228.; '' !! ' /
''' %put with the SAS Packages Framework version 20251231.; '' !! ' /
''' %put ****************************************************************************; '' !! ' /
''' %GOTO theEndOfTheMacro; '' !! ' /
''' %end; '' !! ' /
@@ -2726,7 +2736,7 @@ data _null_;
%end;
put 'put " " / @3 "---------------------------------------------------------------------" / " ";'
/ 'put @3 "*SAS package generated by SAS Package Framework, version `20251228`*";'
/ 'put @3 "*SAS package generated by SAS Package Framework, version `20251231`*";'
/ "put @3 '*under `&sysscp.`(`&sysscpl.`) operating system,*';"
/ "put @3 '*using SAS release: `&sysvlong4.`.*';"
/ 'put " " / @3 "---------------------------------------------------------------------";';