SAS Packages Framework, version 20250710

SAS Packages Framework, version 20250710

Changes:
- Framework's code cleanup: all uses of the autocall `%lowcase()` macro were removed or replaced by `%sysfunc(lowcase(...))` call.
- Formatting of the default MIT license text in the `%generatePackage()` macro was changed.
- The `sourcePath=` parameter in the `%installPackage()` macro now allows both quoted and un-quoted address.
- Documentation updated.
This commit is contained in:
Bart Jablonski
2025-07-10 13:56:45 +02:00
parent 628641a6cf
commit cc25b76144
17 changed files with 401 additions and 391 deletions

View File

@@ -20,7 +20,7 @@
*/
)/secure
/*** HELP END ***/
des = 'Macro to unload SAS package, version 20241207. Run %unloadPackage() for help info.'
des = 'Macro to unload SAS package, version 20250710. 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 20241207. Run %unloadPackage() for h
%put ### This is short help information for the `unloadPackage` macro #;
%put #-------------------------------------------------------------------------------#;
%put # #;
%put # Macro to unload SAS packages, version `20241207` #;
%put # Macro to unload SAS packages, version `20250710` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -113,8 +113,9 @@ des = 'Macro to unload SAS package, version 20241207. Run %unloadPackage() for h
options NOnotes NOsource ls=MAX ps=MAX msglevel=N NOmautocomploc;
%local _PackageFileref_;
/* %let _PackageFileref_ = P%sysfunc(MD5(%lowcase(&packageName.)),hex7.); */
data _null_; call symputX("_PackageFileref_", "P" !! put(MD5("%lowcase(&packageName.)"), hex7. -L), "L"); run;
data _null_;
call symputX("_PackageFileref_", "P" !! put(MD5(lowcase("&packageName.")), hex7. -L), "L");
run;
/* when the packages reference is multi-directory search for the first one containing the package */
data _null_;
@@ -124,7 +125,7 @@ des = 'Macro to unload SAS package, version 20241207. Run %unloadPackage() for h
if char(packages,1) ^= "(" then packages = quote(strip(packages)); /* for paths with spaces */
do i = 1 to kcountw(packages, "()", "QS");
p = dequote(kscanx(packages, i, "()", "QS"));
exists + fileexist(catx("/", p, "%lowcase(&packageName.).&zip."));
exists + fileexist(catx("/", p, lowcase("&packageName.") !! ".&zip."));
if exists then leave;
end;
if exists then call symputx("path", p, "L");
@@ -132,7 +133,7 @@ des = 'Macro to unload SAS package, version 20241207. Run %unloadPackage() for h
filename &_PackageFileref_. &ZIP.
/* put location of package myPackageFile.zip here */
"&path./%lowcase(&packageName.).&zip." %unquote(&options.)
"&path./%sysfunc(lowcase(&packageName.)).&zip." %unquote(&options.)
;
%if %sysfunc(fexist(&_PackageFileref_.)) %then
%do;
@@ -140,7 +141,7 @@ des = 'Macro to unload SAS package, version 20241207. Run %unloadPackage() for h
filename &_PackageFileref_. clear;
options ls = &ls_tmp. ps = &ps_tmp. &notes_tmp. &source_tmp.;
filename &_PackageFileref_. &ZIP.
"&path./%lowcase(&packageName.).&zip." %unquote(&options.)
"&path./%sysfunc(lowcase(&packageName.)).&zip." %unquote(&options.)
ENCODING =
%if %bquote(&packageEncoding.) NE %then &packageEncoding. ;
%else utf8 ;