SAS Packages Framework, version 20231107

## SAS Packages Framework, version `20231107`

Minor fix. An ugly note in log removed for `%loadPackageAddCnt()` macro.

## The BasePlus package [ver. 1.33.0]

- New macro [`%unzipArch()`](https://github.com/SASPAC/baseplus/blob/main/baseplus.md#unziparch-macro) added. The macro allows to extract ZIP archive file from SAS session and does not need `XCMD` (is OS independent).
- Documentation updated.

## The GSM package [ver. 0.22.0]

- Article explaining details of "macro hiding" added as an additional content to the package.

## The macroArray package [ver. 1.2.0]

- New parameters added to the [`%mcDictionary()`](https://github.com/SASPAC/macroarray/blob/main/macroarray.md#mcdictionary-macro) macro which allows to populate dictionary directly from a data set (see the last example in doc.).
- Documentation updated.
This commit is contained in:
Bart Jablonski
2023-11-07 12:35:34 +01:00
parent c4bb3ec6a6
commit ee5d4de333
22 changed files with 366 additions and 173 deletions

View File

@@ -42,7 +42,7 @@
- to unload, or
- to generate SAS packages.
Version 20231024.
Version 20231107.
See examples below.
A SAS package is a zip file containing a group of files
@@ -89,7 +89,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to load SAS package, version 20231024. Run %loadPackage() for help info.'
des = 'Macro to load SAS package, version 20231107. Run %loadPackage() for help info.'
minoperator
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
@@ -105,7 +105,7 @@ minoperator
%put ### This is short help information for the `loadPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to *load* SAS packages, version `20231024` #;
%put # Macro to *load* SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -360,7 +360,7 @@ minoperator
*/
)/secure
/*** HELP END ***/
des = 'Macro to unload SAS package, version 20231024. Run %unloadPackage() for help info.'
des = 'Macro to unload SAS package, version 20231107. Run %unloadPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -375,7 +375,7 @@ des = 'Macro to unload SAS package, version 20231024. Run %unloadPackage() for h
%put ### This is short help information for the `unloadPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to unload SAS packages, version `20231024` #;
%put # Macro to unload SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -524,7 +524,7 @@ des = 'Macro to unload SAS package, version 20231024. Run %unloadPackage() for h
*/
)/secure
/*** HELP END ***/
des = 'Macro to get help about SAS package, version 20231024. Run %helpPackage() for help info.'
des = 'Macro to get help about SAS package, version 20231107. Run %helpPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -539,7 +539,7 @@ des = 'Macro to get help about SAS package, version 20231024. Run %helpPackage()
%put ### This is short help information for the `helpPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to get help about SAS packages, version `20231024` #;
%put # Macro to get help about SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -677,7 +677,7 @@ TODO:
- add MD5(&packageName.) value hash instead "package" word in filenames [DONE]
*/
/* Macros to install SAS packages, version 20231024 */
/* Macros to install SAS packages, version 20231107 */
/* 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
@@ -702,7 +702,7 @@ TODO:
/secure
minoperator
/*** HELP END ***/
des = 'Macro to install SAS package, version 20231024. Run %%installPackage() for help info.'
des = 'Macro to install SAS package, version 20231107. Run %%installPackage() for help info.'
;
%if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then
%do;
@@ -717,7 +717,7 @@ des = 'Macro to install SAS package, version 20231024. Run %%installPackage() fo
%put ### This is short help information for the `installPackage` macro #;
%put #--------------------------------------------------------------------------------------------#;;
%put # #;
%put # Macro to install SAS packages, version `20231024` #;
%put # Macro to install SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -1169,7 +1169,7 @@ des = 'Macro to install SAS package, version 20231024. Run %%installPackage() fo
/* Macro to list SAS packages in packages folder.
Version 20231024
Version 20231107
A SAS package is a zip file containing a group
of SAS codes (macros, functions, data steps generating
@@ -1190,7 +1190,7 @@ des = 'Macro to install SAS package, version 20231024. Run %%installPackage() fo
/*+listPackages+*/
%macro listPackages()/secure PARMBUFF
des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20231024.'
des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20231107.'
;
%if %QUPCASE(&SYSPBUFF.) = %str(%(HELP%)) %then
%do;
@@ -1205,7 +1205,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 `20231024` #;
%put # Macro to list available SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -1355,7 +1355,7 @@ options ls = &ls_tmp. ps = &ps_tmp. &notes_tmp. &source_tmp.;
/* Macro to generate SAS packages.
Version 20231024
Version 20231107
A SAS package is a zip file containing a group
of SAS codes (macros, functions, data steps generating
@@ -1392,7 +1392,7 @@ options ls = &ls_tmp. ps = &ps_tmp. &notes_tmp. &source_tmp.;
default value 1 means "delete tests work" */
)/ secure minoperator
/*** HELP END ***/
des = 'Macro to generate SAS packages, version 20231024. Run %generatePackage() for help info.'
des = 'Macro to generate SAS packages, version 20231107. Run %generatePackage() for help info.'
;
%if (%superq(filesLocation) = ) OR (%qupcase(&filesLocation.) = HELP) %then
%do;
@@ -1407,7 +1407,7 @@ des = 'Macro to generate SAS packages, version 20231024. Run %generatePackage()
%put ### This is short help information for the `generatePackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to generate SAS packages, version `20231024` #;
%put # Macro to generate SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -2179,7 +2179,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 20231024";
footnote1 "SAS Packages Framework, version 20231107";
proc print data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId additionalContent);
run;
@@ -2905,7 +2905,7 @@ data _null_;
%end;
put +(-1) '`.;''' /
' !! '' %put The macro generated: '' !! put(dtCASLudf, E8601DT19.-L) !! ";"' /
' !! '' %put with the SAS Packages Framework version 20231024.;''' /
' !! '' %put with the SAS Packages Framework version 20231107.;''' /
' !! '' %put ****************************************************************************;''' /
' !! '' %GOTO theEndOfTheMacro;''' /
' !! '' %end;''' ;
@@ -3078,7 +3078,7 @@ data _null_;
%end;
put +(-1) '`.; '' !!' /
''' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; '' !!' /
''' %put with the SAS Packages Framework version 20231024.; '' !! ' /
''' %put with the SAS Packages Framework version 20231107.; '' !! ' /
''' %put ****************************************************************************; '' !! ' /
''' %GOTO theEndOfTheMacro; '' !! ' /
''' %end; '' !! ' /
@@ -3694,7 +3694,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 20231024 *"; put "***";';
put 'put "***"; put "* SAS package generated by generatePackage, version 20231107 *"; put "***";';
put 'run; ' /;
@@ -4715,7 +4715,7 @@ TODO: (in Polish)
*/
)/secure
/*** HELP END ***/
des = 'Macro to load multiple SAS packages at one run, version 20231024. Run %loadPackages() for help info.'
des = 'Macro to load multiple SAS packages at one run, version 20231107. Run %loadPackages() for help info.'
parmbuff
;
%if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then
@@ -4731,7 +4731,7 @@ parmbuff
%put ### This is short help information for the `loadPackageS` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro wrapper for the loadPackage macro, version `20231024` #;
%put # Macro wrapper for the loadPackage macro, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -4828,7 +4828,7 @@ parmbuff
hashing_file() function, SAS 9.4M6 */
)/secure
/*** HELP END ***/
des = 'Macro to verify SAS package with the hash digest, version 20231024. Run %verifyPackage() for help info.'
des = 'Macro to verify SAS package with the hash digest, version 20231107. Run %verifyPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -4843,7 +4843,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20231024. Run %
%put ### This is short help information for the `verifyPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to verify SAS package with it hash digest, version `20231024` #;
%put # Macro to verify SAS package with it hash digest, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -5022,7 +5022,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20231024. Run %
*/
)/secure
/*** HELP END ***/
des = 'Macro to preview content of a SAS package, version 20231024. Run %previewPackage() for help info.'
des = 'Macro to preview content of a SAS package, version 20231107. Run %previewPackage() for help info.'
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
%do;
@@ -5037,7 +5037,7 @@ des = 'Macro to preview content of a SAS package, version 20231024. Run %preview
%put ### This is short help information for the `previewPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to get previwe of a SAS packages, version `20231024` #;
%put # Macro to get previwe of a SAS packages, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -5164,7 +5164,7 @@ des = 'Macro to preview content of a SAS package, version 20231024. Run %preview
when empty the "packages" value is used */
)/secure
/*** HELP END ***/
des = 'Macro to list directories pointed by "packages" fileref, version 20231024. Run %extendPackagesFileref(HELP) for help info.'
des = 'Macro to list directories pointed by "packages" fileref, version 20231107. Run %extendPackagesFileref(HELP) for help info.'
;
%if %QUPCASE(&packages.) = HELP %then
@@ -5180,7 +5180,7 @@ des = 'Macro to list directories pointed by "packages" fileref, version 20231024
%put ### This is short help information for the `extendPackagesFileref` macro #;
%put #-----------------------------------------------------------------------------------------#;;
%put # #;
%put # Macro to list directories pointed by 'packages' fileref, version `20231024` #;
%put # Macro to list directories pointed by 'packages' fileref, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -5281,7 +5281,7 @@ filename packages list;
is provided in required version */
)/secure
/*** HELP END ***/
des = 'Macro to load additional content for a SAS package, version 20231024. Run %loadPackageAddCnt() for help info.'
des = 'Macro to load additional content for a SAS package, version 20231107. Run %loadPackageAddCnt() for help info.'
minoperator
;
%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then
@@ -5297,7 +5297,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 `20231024` #;
%put # Macro to *load* additional content for a SAS package, version `20231107` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -5560,14 +5560,14 @@ minoperator
pathname_f = pathname("f");
rc1 = filename("in", strip(pathname_f), "zip", "member='" !! strip(file) !! "' lrecl=1 recfm=n");
length rc1txt $ 8192;
length rc1msg $ 8192;
rc1msg = sysmsg();
rc2 = filename("out", catx("/", libText, scan(file, j , "/\")), "disk", "lrecl=1 recfm=n");
length rc2txt $ 8192;
length rc2msg $ 8192;
rc2msg = sysmsg();
rc3 = fcopy("in", "out");
length rc3txt $ 8192;
length rc3msg $ 8192;
rc3msg = sysmsg();
loadingProblem + (rc3 & 1);