SAS Packages Framework version 20231009

SAS Packages Framework version 20231009

Bug fix in `%generatePackage()` macro.

Documentation updated.
This commit is contained in:
Bart Jablonski
2023-10-09 18:04:52 +02:00
parent 4069f066aa
commit af94d49a79
14 changed files with 127 additions and 90 deletions

View File

@@ -6,7 +6,7 @@
when empty the "packages" value is used */
)/secure
/*** HELP END ***/
des = 'Macro to list directories pointed by "packages" fileref, version 20230904. Run %extendPackagesFileref(HELP) for help info.'
des = 'Macro to list directories pointed by "packages" fileref, version 20231009. Run %extendPackagesFileref(HELP) for help info.'
;
%if %QUPCASE(&packages.) = HELP %then
@@ -22,7 +22,7 @@ des = 'Macro to list directories pointed by "packages" fileref, version 20230904
%put ### This is short help information for the `extendPackagesFileref` macro #;
%put #-----------------------------------------------------------------------------------------#;;
%put # #;
%put # Macro to list directories pointed by 'packages' fileref, version `20230904` #;
%put # Macro to list directories pointed by 'packages' fileref, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;

View File

@@ -23,7 +23,7 @@
default value 1 means "delete tests work" */
)/ secure minoperator
/*** HELP END ***/
des = 'Macro to generate SAS packages, version 20230904. Run %generatePackage() for help info.'
des = 'Macro to generate SAS packages, version 20231009. Run %generatePackage() for help info.'
;
%if (%superq(filesLocation) = ) OR (%qupcase(&filesLocation.) = HELP) %then
%do;
@@ -38,7 +38,7 @@ des = 'Macro to generate SAS packages, version 20230904. Run %generatePackage()
%put ### This is short help information for the `generatePackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to generate SAS packages, version `20230904` #;
%put # Macro to generate SAS packages, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -71,6 +71,7 @@ des = 'Macro to generate SAS packages, version 20230904. Run %generatePackage()
%put # if there are dependencies in loading the package. #;
%put # Has to be a single directory, if more than one are #;
%put # provided than only the first is used. #;
%put # If path to location contains spaces it should be quoted! #;
%put # #;
%put # - `testResults=` Location where tests results should be stored, #;
%put # if null (the default) then the session WORK is used. #;
@@ -809,6 +810,7 @@ title6 "MD5 hashed fileref of package lowcase name: &_PackageFileref_.";
title8 "Required SAS packages: %qsysfunc(compress(%superq(packageReqPackages),%str(%'%")))" ; /* " */
%end;
footnote1 "SAS Packages Framework, version 20231009";
proc print data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId additionalContent);
run;
@@ -835,6 +837,7 @@ title;
%end;
title;
footnote;
options &notesSourceOptions.;
@@ -1521,7 +1524,7 @@ data _null_;
%end;
put +(-1) '`.;''' /
' !! '' %put The macro generated: '' !! put(dtCASLudf, E8601DT19.-L) !! ";"' /
' !! '' %put with the SAS Packages Framework version 20230904.;''' /
' !! '' %put with the SAS Packages Framework version 20231009.;''' /
' !! '' %put ****************************************************************************;''' /
' !! '' %GOTO theEndOfTheMacro;''' /
' !! '' %end;''' ;
@@ -1694,7 +1697,7 @@ data _null_;
%end;
put +(-1) '`.; '' !!' /
''' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; '' !!' /
''' %put with the SAS Packages Framework version 20230904.; '' !! ' /
''' %put with the SAS Packages Framework version 20231009.; '' !! ' /
''' %put ****************************************************************************; '' !! ' /
''' %GOTO theEndOfTheMacro; '' !! ' /
''' %end; '' !! ' /
@@ -2310,7 +2313,7 @@ data _null_;
put "put @3 'localization (only if additional content was deployed during the installation process).';" / "put ;";
%end;
put 'put "***"; put "* SAS package generated by generatePackage, version 20230904 *"; put "***";';
put 'put "***"; put "* SAS package generated by generatePackage, version 20231009 *"; put "***";';
put 'run; ' /;
@@ -2703,7 +2706,20 @@ filename &zipReferrence. clear;
%put NOTE-;
/* in case the packages macrovariable is multi-directory the first directory will be selected */
data _null_;
call symputX("packages", dequote(kscanx(resolve(symget("packages")), 1, "()", "QS")) ,"L");
length packages $ 32767;
packages = resolve(symget("packages"));
/* check if path contains quotes */
quotes = lengthn(compress(packages,"""'","K"));
/* issue error for unmatched quotes */
if mod(quotes,2) then
put "ERROR: Unbalanced quotes in the PACKAGES= parameter." / "ERROR- " PACKAGES= ;
if quotes > 0 then
call symputX("packages", dequote(kscanx(packages, 1, "()", "QS")) ,"L");
else
call symputX("packages", packages ,"L");
run;
/* check if systask is available */
@@ -2719,7 +2735,9 @@ run;
put 'NOTE-';
n=6;
put @n "filename packages '&packages.';" /;
length packages $ 32767;
packages = quote(dequote(strip(symget('packages'))));
put @n "filename packages " packages ";" /;
if fileexist("&packages./SPFinit.sas") then
put @n '%include packages(SPFinit.sas);' /;

View File

@@ -28,7 +28,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to get help about SAS package, version 20230904. Run %helpPackage() for help info.'
des = 'Macro to get help about SAS package, version 20231009. Run %helpPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -43,7 +43,7 @@ des = 'Macro to get help about SAS package, version 20230904. Run %helpPackage()
%put ### This is short help information for the `helpPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to get help about SAS packages, version `20230904` #;
%put # Macro to get help about SAS packages, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -181,7 +181,7 @@ TODO:
- add MD5(&packageName.) value hash instead "package" word in filenames [DONE]
*/
/* Macros to install SAS packages, version 20230904 */
/* Macros to install SAS packages, version 20231009 */
/* A SAS package is a zip file containing a group of files
with SAS code (macros, functions, data steps generating
data, etc.) wrapped up together and %INCLUDEed by

View File

@@ -16,7 +16,7 @@
/secure
minoperator
/*** HELP END ***/
des = 'Macro to install SAS package, version 20230904. Run %%installPackage() for help info.'
des = 'Macro to install SAS package, version 20231009. Run %%installPackage() for help info.'
;
%if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then
%do;
@@ -31,7 +31,7 @@ des = 'Macro to install SAS package, version 20230904. Run %%installPackage() fo
%put ### This is short help information for the `installPackage` macro #;
%put #--------------------------------------------------------------------------------------------#;;
%put # #;
%put # Macro to install SAS packages, version `20230904` #;
%put # Macro to install SAS packages, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -483,7 +483,7 @@ des = 'Macro to install SAS package, version 20230904. Run %%installPackage() fo
/* Macro to list SAS packages in packages folder.
Version 20230904
Version 20231009
A SAS package is a zip file containing a group
of SAS codes (macros, functions, data steps generating

View File

@@ -1,7 +1,7 @@
/*+listPackages+*/
%macro listPackages()/secure PARMBUFF
des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20230904.'
des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20231009.'
;
%if %QUPCASE(&SYSPBUFF.) = %str(%(HELP%)) %then
%do;
@@ -16,7 +16,7 @@ des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HE
%put ### This is short help information for the `listPackages` macro #;
%put #-----------------------------------------------------------------------------------------#;;
%put # #;
%put # Macro to list available SAS packages, version `20230904` #;
%put # Macro to list available SAS packages, version `20231009` #;
%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 @@ options ls = &ls_tmp. ps = &ps_tmp. &notes_tmp. &source_tmp.;
/* Macro to generate SAS packages.
Version 20230904
Version 20231009
A SAS package is a zip file containing a group
of SAS codes (macros, functions, data steps generating

View File

@@ -34,7 +34,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to load SAS package, version 20230904. Run %loadPackage() for help info.'
des = 'Macro to load SAS package, version 20231009. Run %loadPackage() for help info.'
minoperator
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
@@ -50,7 +50,7 @@ minoperator
%put ### This is short help information for the `loadPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to *load* SAS packages, version `20230904` #;
%put # Macro to *load* SAS packages, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;

View File

@@ -19,7 +19,7 @@
is provided in required version */
)/secure
/*** HELP END ***/
des = 'Macro to load additional content for a SAS package, version 20230904. Run %loadPackageAddCnt() for help info.'
des = 'Macro to load additional content for a SAS package, version 20231009. Run %loadPackageAddCnt() for help info.'
minoperator
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
@@ -35,7 +35,7 @@ minoperator
%put ### This is short help information for the `loadPackageAddCnt` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to *load* additional content for a SAS package, version `20230904` #;
%put # Macro to *load* additional content for a SAS package, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;

View File

@@ -11,7 +11,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to load multiple SAS packages at one run, version 20230904. Run %loadPackages() for help info.'
des = 'Macro to load multiple SAS packages at one run, version 20231009. Run %loadPackages() for help info.'
parmbuff
;
%if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then
@@ -27,7 +27,7 @@ parmbuff
%put ### This is short help information for the `loadPackageS` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro wrapper for the loadPackage macro, version `20230904` #;
%put # Macro wrapper for the loadPackage macro, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;

View File

@@ -23,7 +23,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to preview content of a SAS package, version 20230904. Run %previewPackage() for help info.'
des = 'Macro to preview content of a SAS package, version 20231009. Run %previewPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -38,7 +38,7 @@ des = 'Macro to preview content of a SAS package, version 20230904. Run %preview
%put ### This is short help information for the `previewPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to get previwe of a SAS packages, version `20230904` #;
%put # Macro to get previwe of a SAS packages, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;

View File

@@ -20,7 +20,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to unload SAS package, version 20230904. Run %unloadPackage() for help info.'
des = 'Macro to unload SAS package, version 20231009. Run %unloadPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -35,7 +35,7 @@ des = 'Macro to unload SAS package, version 20230904. Run %unloadPackage() for h
%put ### This is short help information for the `unloadPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to unload SAS packages, version `20230904` #;
%put # Macro to unload SAS packages, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;

View File

@@ -13,7 +13,7 @@
hashing_file() function, SAS 9.4M6 */
)/secure
/*** HELP END ***/
des = 'Macro to verify SAS package with the hash digest, version 20230904. Run %verifyPackage() for help info.'
des = 'Macro to verify SAS package with the hash digest, version 20231009. Run %verifyPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -28,7 +28,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20230904. Run %
%put ### This is short help information for the `verifyPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to verify SAS package with it hash digest, version `20230904` #;
%put # Macro to verify SAS package with it hash digest, version `20231009` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;