SAS Packages Framework, version 20251126

SAS Packages Framework, version 20251126

Changes:
- Automatic documentation generator in the %generatePackage() macro can now exclude files generated by `%splitCodeForPackage()` macro.
This commit is contained in:
Bart Jablonski
2025-11-26 20:58:03 +01:00
parent 200bab261e
commit b71b0382c5
15 changed files with 102 additions and 86 deletions

View File

@@ -3,7 +3,7 @@
Macro to generate SAS packages.
Version 20251122
Version 20251126
A SAS package is a zip file containing a group
of SAS codes (macros, functions, data steps generating
@@ -49,7 +49,7 @@
file name be created */
)/ secure minoperator
/*** HELP END ***/
des = 'Macro to generate SAS packages, version 20251122. Run %generatePackage() for help info.'
des = 'Macro to generate SAS packages, version 20251126. Run %generatePackage() for help info.'
;
%if (%superq(filesLocation) = ) OR (%qupcase(&filesLocation.) = HELP) %then
%do;
@@ -64,7 +64,7 @@ des = 'Macro to generate SAS packages, version 20251122. Run %generatePackage()
%put ### This is short help information for the `generatePackage` macro #;
%put #------------------------------------------------------------------------------------#;
%put # #;
%put # Macro to generate SAS packages, version `20251122` #;
%put # Macro to generate SAS packages, version `20251126` #;
%put # #;
%put # A SAS package is a zip file containing a group #;
%put # of SAS codes (macros, functions, data steps generating #;
@@ -891,7 +891,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 20251122";
footnote1 "SAS Packages Framework, version 20251126";
proc print
data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId additionalContent)
@@ -1715,7 +1715,7 @@ data _null_;
%end;
put +(-1) '`.;''' /
' !! '' %put The macro generated: '' !! put(dtCASLudf, E8601DT19.-L) !! ";"' /
' !! '' %put with the SAS Packages Framework version 20251122.;''' /
' !! '' %put with the SAS Packages Framework version 20251126.;''' /
' !! '' %put ****************************************************************************;''' /
' !! '' %GOTO theEndOfTheMacro;''' /
' !! '' %end;''' ;
@@ -1880,7 +1880,7 @@ data _null_;
%end;
put +(-1) '`.; '' !!' /
''' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; '' !!' /
''' %put with the SAS Packages Framework version 20251122.; '' !! ' /
''' %put with the SAS Packages Framework version 20251126.; '' !! ' /
''' %put ****************************************************************************; '' !! ' /
''' %GOTO theEndOfTheMacro; '' !! ' /
''' %end; '' !! ' /
@@ -2687,7 +2687,7 @@ data _null_;
%end;
put 'put " " / @3 "---------------------------------------------------------------------" / " ";'
/ 'put @3 "*SAS package generated by SAS Package Framework, version `20251122`*";'
/ 'put @3 "*SAS package generated by SAS Package Framework, version `20251126`*";'
/ "put @3 '*under `&sysscp.`(`&sysscpl.`) operating system,*';"
/ "put @3 '*using SAS release: `&sysvlong4.`.*';"
/ 'put " " / @3 "---------------------------------------------------------------------";';
@@ -3803,7 +3803,7 @@ data &filesWithCodes.markdown;
%end;
put " " / "---------------------------------------------------------------------" / " "
/ "*SAS package generated by SAS Package Framework, version `20251122`,*"
/ "*SAS package generated by SAS Package Framework, version `20251126`,*"
/ "*under `&sysscp.`(`&sysscpl.`) operating system,*"
/ "*using SAS release: `&sysvlong4.`.*"
/ " " / "---------------------------------------------------------------------" / " ";
@@ -3819,7 +3819,7 @@ data &filesWithCodes.markdown;
/*
To exclude file from being added to the documentation
insert the "excluding" text(see below) as a comment
in the FIRST line of the file.
in the FIRST or SECOND line of the file!
Do not add spaces.
For each file the first line is read in and checked.
@@ -3833,7 +3833,15 @@ data &filesWithCodes.markdown;
'/*##ExcludeFromDocumentation##*/'
'/*##ExcludeFromMarkdownDoc##*/'
)
then continue; /* exclude file from documentation */
then continue; /* exclude file from documentation after FIRST line */
input;
if strip(_infile_) IN (
'/*##DoNotUse4Documentation##*/'
'/*##ExcludeFromDocumentation##*/'
'/*##ExcludeFromMarkdownDoc##*/'
)
then continue; /* exclude file from documentation after SECOND line */
/* this is because %splitCodeForPackage() macro adds one extra line */
type2=type;
length link $ 256;