From 62a14b4560471fcea76d2871c2f0be99e244347e Mon Sep 17 00:00:00 2001 From: Bart Jablonski Date: Tue, 7 Feb 2023 17:51:24 +0100 Subject: [PATCH] SAS Packages Framework, version 20230207 SAS Packages Framework, version 20230207 News: - "Additional Content" feature added to the framework. Changes in the framework related to the new feature: - new macro `%loadPackageAddCnt()`, - modifications in the `%generatePackage()` macro, - new parameter in `%loadPackage()` and `%installPackage()` macros, - new code added in loading test. Fixes: - IML Modules loader utility macro rewritten, - bug fixes. Documentation: - documentation updated, - spelling fixes. --- LICENSE | 2 +- README.md | 6 +- .../Getting_Started_with_SAS_Packages.pdf | Bin 641607 -> 673516 bytes ...(a how to)- Paper 4725-2020 - extended.pdf | Bin 327166 -> 333213 bytes SPF/Macros/extendpackagesfileref.sas | 5 +- SPF/Macros/generatepackage.sas | 434 +++++++-- SPF/Macros/helppackage.sas | 6 +- SPF/Macros/installpackage.sas | 33 +- SPF/Macros/listpackages.sas | 6 +- SPF/Macros/loadpackage.sas | 27 +- SPF/Macros/loadpackageaddcnt.sas | 365 +++++++ SPF/Macros/loadpackages.sas | 4 +- SPF/Macros/previewpackage.sas | 4 +- SPF/Macros/unloadpackage.sas | 4 +- SPF/Macros/verifypackage.sas | 4 +- SPF/SPFinit.md | 135 ++- SPF/SPFinit.sas | 894 +++++++++++++++--- SPF/license.sas | 2 +- 18 files changed, 1673 insertions(+), 258 deletions(-) create mode 100644 SPF/Macros/loadpackageaddcnt.sas diff --git a/LICENSE b/LICENSE index cde71df..5209ec2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 - 2022 Bartosz Jablonski +Copyright (c) 2019 - 2023 Bartosz Jablonski Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 24804ff..dd21a10 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ In this repository we are presenting the **SAS Packages Framework** which allows ### Current version: -**The latest version** of SPF is **`20230112`**. +**The latest version** of SPF is **`20230207`**. To get started with SAS Packages try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). @@ -136,7 +136,9 @@ The SAS Packages Framework [(short) documetation](https://github.com/yabwon/SAS_ ### Updates worth mentioning: -**Update**\[December 12th, 2022\]**:** `CASLUDF` **typed for CASL user defined functions added to the framework. Utility macros for for loading content in proc IML and proc CAS added. (see [here](https://github.com/yabwon/SAS_PACKAGES/releases/tag/20221212 "New Type and Utility macros"))**. +**Update**\[February 7th, 2023\]**:** `ADDCNT` ** type for *additional content* feature and ** `%loadPackageAddCnt()` **macro added to the framework. (see [here](https://github.com/yabwon/SAS_PACKAGES/releases/tag/20230207 "Additional Content"))**. + +**Update**\[December 12th, 2022\]**:** `CASLUDF` ** type for CASL user defined functions added to the framework. Utility macros for for loading content in proc IML and proc CAS added. (see [here](https://github.com/yabwon/SAS_PACKAGES/releases/tag/20221212 "New Type and Utility macros"))**. **Update**\[November 21st, 2022\]**:** `%loadPackage()` **macro allows Cherry Picking of content (see [here](https://github.com/yabwon/SAS_PACKAGES/releases/tag/20221121 "Cherry Picking"))**. diff --git a/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf b/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf index 52b8cafa930458ad4381af5b6559420d662b934d..9a1eb305484d30b3e937f5c7124a38347f182ba2 100644 GIT binary patch delta 138050 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

1@697gHQe4PR)EYHZ7&2&_Rw5)}W*z4r z#zAV~11eIIU?d3U^Ylb6DQ!?gL^VQh#KJ_jm!zENA4VtSx)P{@R7=NdA{H}XWO-`f z>f^UOsElNV;VK>yR)KCwTy7X3QkZxwVCC3sCJ;WT%ZqAOm#9Cu&O<22_}`+gAc32g zT&PU$%7UUx?!aO&%B<{cC^u-_h$dBug!Kmv5_vVY1#wRz^a~ya%Z2lHAoY(p9ax$f zze)hZeI>T-VcRg+c&i!X0jS~?21rbtVCO0$Zpw2%gd;Xpz8oxezAg+aaVy9C&FE(d zOgued%jkI8AqRPI93jxwHi^+|tF(m}Q^vynrKfyjll8uq8-g(f zCoBLXN4@|fdH_3h%ty)qgXfVSAn;(zN4Ts<#WKA}LE&R`wrGVmL>h!=l3VZCHnRZAQe9DUfwv}&`zoM*0l5S_SUs=l@?)18$T#B$QAdWN3rj%3HJblpP?R=u3x`{ IpHJ!k17TJBMF0Q* delta 110856 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 s{-x)aSi`^py=m^u!(j)>tDsa1Vb|P{ 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Þ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 ZZ_utB;K^6}nklmh9S?JR+zh7je*sns^3ebQ diff --git a/SPF/Documentation/SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf b/SPF/Documentation/SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf index 02fdb41e197d75cf9900424b82106e6f2aca7c4e..fb556837add9e397ab2b92385fef14c7dfdb1a3b 100644 GIT binary patch delta 87262 zcmY(qV{j!*^zEG!+qP}no){C`nbXf3Q~kR28qHTfyAJ{LG-Z5ASIX$&;~3LhzGU= z)D4FWI)j}98NnliCg4&*@d!vwcJSl?01qeu!5zR0f%0Mmx@PP`7>EV7QtaIPJf5DT198pLBtDpoFY+!HOli&3^ z!Z$)q_;+ua(0LVQybwVIJ!?g}BTGP^N`ah&G_JdiJd86~WcSK*seKw%+}e`e3Yim$ttZ{1>08TjWBaS=fW5Hdg}Y61?p?e z7_=qcOAzqY=8=d|S$eWY6-XVmBdGiG+c*|QHWj&A!t3)j&^KLC6}$Vjk0rznKm%y5 zT04p^aMCUR5PkJHQdm*eF~zuiZ57eb!?Kp(og`(Wm#=PHh?+C$FJESqEO1f1u>Flg_w=o0HYHhx-w-TnEq?YD2${bF=!6O5vsb>&`5G_$Sk z1x6AoBp0PrqehZK36xD$45eUc5{j}}|Afod1>PEXxK0;?U1I@2qD&Mbs2vTxkLr$e zm(8awZ_cMK*~~Is=#FKad3lPG%gXsTpD$#2ei=}i4Td?ohY?AHOM5o?>i}Jv*_$yr z2h_R0b6NlwQ_f{K&qb_zkWof%<0SLc-q227_F2M@MrdADAkh`x#+FNrautq6ugzMg z!S?-qFk#3T07+Vp6{R=Y9|78??}<43?WP8{N;(E7v1PVFl^gt5kk0|a0E?j^1z8o! z%QqDKP}QPjX{09IN(t$Rf!|I=_#esW05Q7l6eQF-&~U}(w&qk8ObwWkrNMX)-(*Vo z1auTm1l-LWQh=O?sTaaKBb_6vvw9T%vMw6qmNQBQlM+Vqe}vL9mp^aF;9enGZc zwF28UyG<%87>_chaXr;Lb@8#MTlYI)F=#!T-LcKQ!?@o5nRfgxTu1$H5CEu^o_8AR z=Dd=!KQ8Yv(Z1TE>1qrm&VnNaja18?MC%>4AUVFLVm}UD8b27>7FbIAO^Tz}wg>E2 z2RqapSi(+Aw%Cs%pr-2Dr|YC>6_uFa9WPu57ijOQn&`e*IAnjou&T8}`D8HZVjm)=%|uOU}a(%<`-AvAl~-%ifH zc6Sg%ctn4Q+Q)VVo!(R0VKM%eU~>UUuB-kG|LUcxhhBK2B@fORf?0tWjud++2Sa1V z3|>{=*Pd(2$3-1k#(pif0=$o|mtNfh2A6~5QG=9wAlB`$pY`%nXnF3`n#DXBXP(x^ ze#Ev0#drPaTrr0VagaynJo){!Xp(ObXg+6pM1pwEJ!8xEq^Tb0IRcgdxQPX3SJE9D zX6U3?7eMm+6-2TOkroo^@}sZCW(!FrueYYt2l^Xvjm~UbPW15N5Zx68=l2Y7*&9So z?#iMwN>{59P#=87{v?BhMdKBVGIdMf#>KAUlt!bd{-O^t{{yyak1ZLgzfeK(;0T#^ zui01;*gsUkZ�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 M)XkM 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 wvAQ^_CRqy@~ delta 82334 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 Dcq2+2 diff --git a/SPF/Macros/extendpackagesfileref.sas b/SPF/Macros/extendpackagesfileref.sas index bc1345c..37eb3ad 100644 --- a/SPF/Macros/extendpackagesfileref.sas +++ b/SPF/Macros/extendpackagesfileref.sas @@ -6,7 +6,7 @@ when empty the "packages" value is used */ )/secure /*** HELP END ***/ -des = 'Macro to list directories pointed by "packages" fileref, version 20230112. Run %extendPackagesFileref(HELP) for help info.' +des = 'Macro to list directories pointed by "packages" fileref, version 20230207. 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 20230112 %put ### This is short help information for the `extendPackagesFileref` macro #; %put #-----------------------------------------------------------------------------------------#;; %put # #; - %put # Macro to list directories pointed by 'packages' fileref, version `20230112` #; + %put # Macro to list directories pointed by 'packages' fileref, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -102,4 +102,3 @@ filename packages list; */ -/**/ diff --git a/SPF/Macros/generatepackage.sas b/SPF/Macros/generatepackage.sas index a9b77ba..ee4ee6d 100644 --- a/SPF/Macros/generatepackage.sas +++ b/SPF/Macros/generatepackage.sas @@ -23,7 +23,7 @@ default value 1 means "delete tests work" */ )/ secure minoperator /*** HELP END ***/ -des = 'Macro to generate SAS packages, version 20230112. Run %generatePackage() for help info.' +des = 'Macro to generate SAS packages, version 20230207. 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 20230112. Run %generatePackage() %put ### This is short help information for the `generatePackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to generate SAS packages, version `20230112` #; + %put # Macro to generate SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -96,7 +96,7 @@ des = 'Macro to generate SAS packages, version 20230112. Run %generatePackage() %end; %put --- generatePackage START ---; -%local zipReferrence filesWithCodes _DESCR_ _LIC_ _DUMMY_ _RC_ _PackageFileref_; +%local zipReferrence filesWithCodes _DESCR_ _LIC_ _DUMMY_ _RC_ _PackageFileref_ additionalContent; %let zipReferrence = _%sysfunc(datetime(), hex6.)_; %let filesWithCodes = WORK._%sysfunc(datetime(), hex16.)_; %let _DESCR_ = _%sysfunc(datetime(), hex6.)d; @@ -491,6 +491,15 @@ DESCRIPTION END: | +-... | + +-998_addcnt [additional content for the package, can be only one!, content of this + | | directory is copied "as is"] + | | + | +-arbitrary_file1 [an arbitrary file ] + | | + | +-subdirectory_with_files [an arbitrary directory with some files inside] + | | + | +-... + | +-999_test [tests executed during package generation, XCMD options must be turned-on] | | | +-test1.sas [a file with a code for test1] @@ -553,7 +562,9 @@ data &filesWithCodes.; ('LIBNAME' 'MACRO' /*'MACROS'*/ 'DATA' 'FUNCTION' /*'FUNCTIONS'*/ 'FORMAT' /*'FORMATS'*/ 'IMLMODULE' 'PROTO' 'EXEC' 'CLEAN' - 'LAZYDATA' 'TEST' 'CASLUDF')) + 'LAZYDATA' 'TEST' 'CASLUDF' + 'ADDCNT' + )) then do; put "WARNING: Type " type 'is not yet supported.' / @@ -561,30 +572,53 @@ data &filesWithCodes.; "WARNING- No content from it will be used to generate the package." / " "; goto ignoreFolder; end; - - /* if it is a directory then read its content */ - if fileId then - do j = 1 to dnum(fileId); drop j; - file = dread(fileId, j); - if file NE lowcase(file) then - do; - put 'ERROR: File with code should be named ONLY with low case letters.'; - put 'ERROR- Current value is: ' file; - lowcase_name = lowcase(file); - put 'ERROR- Try to use: ' lowcase_name; - put; - _abort_ + 1; - end; - fileshort = substr(file, 1, length(file) - 4); /* filename.sas -> filename */ - if strip(reverse(file)) in: ('sas.') then output; /* ignore not ".sas" files */ - else - do; - put "WARNING: Only *.sas files are supported." / - "WARNING- The file: " file "will be ignored." / - "WARNING- "; - end; - end; + /* if it is a directory then read its content... */ + if fileId then + do; + /* ...but! do not use files from "additional content" directory */ + if NOT (upcase(type) =: 'ADDCNT') then + do j = 1 to dnum(fileId); drop j; + file = dread(fileId, j); + if file NE lowcase(file) then + do; + put 'ERROR: File with code should be named ONLY with low case letters.'; + put 'ERROR- Current value is: ' file; + lowcase_name = lowcase(file); + put 'ERROR- Try to use: ' lowcase_name; + put; + _abort_ + 1; + end; + fileshort = substr(file, 1, length(file) - 4); /* filename.sas -> filename */ + + if strip(reverse(file)) in: ('sas.') then output; /* ignore not ".sas" files */ + else + do; + put "WARNING: Only *.sas files are supported." / + "WARNING- The file: " file "will be ignored." / + "WARNING- "; + end; + end; + else + do; + file = "additionalcontent"; + fileshort = file; + additionalContent+1; + if additionalContent > 1 then + do; + put "WARNING: Only ONE directory with additional content is allowed!" / + "WARNING- Store all additional content in a single directory." / + "WARNING- The directory: " folder "will be ignored." / + "WARNING- "; + end; + else + do; + /*output;*/ + put "NOTE: Additional content located in " folder; + call symputX('additionalContent', folder, "L"); + end; + end; + end; ignoreFolder: ; rc = dclose(fileId); @@ -680,6 +714,55 @@ data _null_; end; run; +%if %superq(additionalContent) NE %then + %do; + /* code inspired by Kurt Bremser's "Talking to Your Host" article */ + /* https://communities.sas.com/t5/SAS-User-Groups-Library/WUSS-Presentation-Talking-to-Your-Host/ta-p/838344 */ + /* WUSS 2022 */ + + data &filesWithCodes.addCnt; + run; + + data &filesWithCodes.addCnt; + length root dname $ 2048 filename $ 256 dir level 8; + root = "&filesLocation./&additionalContent."; + retain filename dname ' ' level 0 dir 1; + label + filename = "file" + dname = "folder" + ; + run; + + data &filesWithCodes.addCnt; + modify &filesWithCodes.addCnt; + rc1=filename('tmp',catx('/',root,dname,filename)); + rc2=dopen('tmp'); + dir = 1 & rc2; + if dir then + do; + dname=catx('/',dname,filename); + filename=' '; + end; + replace; + + if dir; + + level=level+1; + + do i=1 to dnum(rc2); + filename=dread(rc2,i); + output; + end; + rc3=dclose(rc2); + run; + + proc sort data=&filesWithCodes.addCnt(where=(filename is not null)); + by root dname filename; + run; + %end; + + + /* proc contents data = &filesWithCodes.; run; @@ -699,9 +782,31 @@ title6 "MD5 hashed fileref of package lowcase name: &_PackageFileref_."; %end; -proc print data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId); +proc print data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId additionalContent); run; title; + +%if %superq(additionalContent) NE %then + %do; + data _null_; + if not nobs then + do; + put "WARNING: Directory with additional content is empty."; + put "WARNING- Additional content will not be generated."; + call symputX("additionalContent", "", "L"); + end; + stop; + set &filesWithCodes.addCnt nobs=nobs; + run; + title2 "Package additional content:"; + proc print + data=&filesWithCodes.addCnt(drop=root dir level) + label + ; + run; + %end; + +title; options ¬esSourceOptions.; @@ -1146,7 +1251,7 @@ data _null_; set &filesWithCodes. end = EOF nobs=NOBS; by TYPE notsorted; - if (upcase(type) in: ('CLEAN' 'LAZYDATA' 'TEST' 'CASLUDF')) + if (upcase(type) in: ('CLEAN' 'LAZYDATA' 'TEST' 'CASLUDF' 'ADDCNT')) then continue; /* CASLUDF type will go in the next loop */ /* cleaning files are only included in unload.sas */ /* lazy data are only loaded on demand @@ -1158,7 +1263,7 @@ data _null_; ('LIBNAME' 'MACRO' /*'MACROS'*/ 'DATA' 'FUNCTION' /*'FUNCTIONS'*/ 'FORMAT' /*'FORMATS'*/ 'IMLMODULE' 'PROTO' 'EXEC' 'CLEAN' - 'LAZYDATA' 'TEST')) + 'LAZYDATA' 'TEST' 'ADDCNT')) then do; putlog 'WARNING: Type ' type 'is not yet supported.'; @@ -1283,23 +1388,48 @@ data _null_; /* FOOTERS for IML, FCMP, and PROTO - end */ /* add the link to the functions dataset, only for the first occurrence */ - if 1 = isFunction and (upcase(type)=:'FUNCTION') then + /*if 1 = isFunction and (upcase(type)=:'FUNCTION') then do; put "options APPEND=(cmplib = work.%lowcase(&packageName.fcmp));"/; + end;*/ + if 1 = FIRST.type and (upcase(type)=:'FUNCTION') then + do; + put '%sysfunc(ifc(0<' / + ' %sysfunc(findw((%sysfunc(getoption(cmplib)))' / + " ,work.%lowcase(&packageName.fcmp),""'( )'"",RIO))" / + ',,%str(options' " APPEND=(cmplib = work.%lowcase(&packageName.fcmp));)" / + '))' ; end; /* add the link to the proto functions dataset, only for the first occurrence */ - if 1 = isProto and (upcase(type)=:'PROTO') then + /*if 1 = isProto and (upcase(type)=:'PROTO') then do; put "options APPEND=(cmplib = work.%lowcase(&packageName.proto));"/; + end;*/ + if 1 = FIRST.type and (upcase(type)=:'PROTO') then + do; + put '%sysfunc(ifc(0<' / + ' %sysfunc(findw((%sysfunc(getoption(cmplib)))' / + " ,work.%lowcase(&packageName.proto),""'( )'"",RIO))" / + ',,%str(options' " APPEND=(cmplib = work.%lowcase(&packageName.proto));)" / + '))' ; end; /* add the link to the formats catalog, only for the first occurrence */ - if 1 = isFormat and (upcase(type)=:'FORMAT') then + /*if 1 = isFormat and (upcase(type)=:'FORMAT') then do; put "options INSERT=(fmtsearch = work.%lowcase(&packageName.format));"/; + end;*/ + if 1 = FIRST.type and (upcase(type)=:'FORMAT') then + do; + put '%sysfunc(ifc(0<' / + ' %sysfunc(findw((%sysfunc(getoption(fmtsearch)))' / + " ,work.%lowcase(&packageName.format),""'( )'"",RIO))" / + ',,%str(options' " INSERT=(fmtsearch = work.%lowcase(&packageName.format));)" / + '))' ; end; + end; /* loopOverTypes - start */ /* this is a header for CASLudf macro */ @@ -1333,7 +1463,7 @@ data _null_; ' !! '' %put %str( )when set to the value of `HELP` (upcase letters!) displays this help message.;''' / ' !! '' %put - `depList` [technical] contains the list of dependencies required by the package.;''' / - ' !! '' %put %str( )for _this_ instance of the macro the default value is: `'; + ' !! '' %put %str( )for _this_ instance of the macro the default value is: `' @; %if %superq(packageReqPackages) ne %then %do; do i = 1 to countw(packageReqPackages, ",", "Q"); @@ -1343,7 +1473,7 @@ data _null_; %end; put +(-1) '`.;''' / ' !! '' %put The macro generated: '' !! put(dtCASLudf, E8601DT19.-L) !! ";"' / - ' !! '' %put with the SAS Packages Framework version 20230112.;''' / + ' !! '' %put with the SAS Packages Framework version 20230207.;''' / ' !! '' %put ****************************************************************************;''' / ' !! '' %GOTO theEndOfTheMacro;''' / ' !! '' %end;''' ; @@ -1476,9 +1606,9 @@ data _null_; put '%if (%str(*)=%superq(cherryPick)) or 0 < &cherryPick_IML_ALL. %then %do;'; /* this "text wrapper" was added to get datetime generated when macro is compiled */ - put "data _null_; dtIML=datetime(); IML='"; /* wrapper start */ + put "data _null_; dtIML=datetime(); IML="; /* wrapper start */ - put '%macro ' " &packageName.IML(list=1,err=ERROR,resetIMLstorage=1,depList=" ; + put '''%macro ' " &packageName.IML(list=1,err=ERROR,resetIMLstorage=1,depList=" ; %if %superq(packageReqPackages) ne %then %do; length reqPackage $ 32; @@ -1488,25 +1618,25 @@ data _null_; end; put ; %end; - put ")/ des = ""IML Modules loader for &packageName. package""; " / - ' %if HELP = %superq(list) %then ' / - ' %do; ' / - ' %put ****************************************************************************; ' / - ' %put This is help for the `' "&packageName.IML" '` macro; ' / - ' %put Parameters (optional) are the following:; ' / + put "' !! ')/ des = ""IML Modules loader for &packageName. package""; ' !!" / + ''' %if HELP = %superq(list) %then '' !!' / + ''' %do; '' !!' / + ''' %put ****************************************************************************; '' !!' / + ''' %put This is help for the `' "&packageName.IML" '` macro; '' !!' / + ''' %put Parameters (optional) are the following:; '' !!' / - ' %put - `list` indicates if the list of loaded moduls should be displayed,; ' / - ' %put %str( )when set to the value of `1` (the default) runs `SHOW MODULES%str(;)`,; ' / - ' %put %str( )when set to the value of `HELP` (upcase letters!) displays this help message.;' / + ''' %put - `list` indicates if the list of loaded moduls should be displayed,; '' !!' / + ''' %put %str( )when set to the value of `1` (the default) runs `SHOW MODULES%str(;)`,; '' !!' / + ''' %put %str( )when set to the value of `HELP` (upcase letters!) displays this help message.;'' !!' / - ' %put - `resetIMLstorage` indicates if to reset default moduls storage,; ' / - ' %put %str( )when set to `1` (the default) runs `RESET STORAGE = WORK.IMLSTOR%str(;)`.; ' / + ''' %put - `resetIMLstorage` indicates if to reset default moduls storage,; '' !!' / + ''' %put %str( )when set to `1` (the default) runs `RESET STORAGE = WORK.IMLSTOR%str(;)`.; '' !!' / - ' %put - `err` [technical] indicates message type in case of missing modules catalog,; ' / - ' %put %str( )when set to the value of `ERROR` (the default) prints Error message.; ' / + ''' %put - `err` [technical] indicates message type in case of missing modules catalog,; '' !!' / + ''' %put %str( )when set to the value of `ERROR` (the default) prints Error message.; '' !!' / - ' %put - `depList` [technical] contains the list of dependencies required by the package.; ' / - ' %put %str( )for _this_ instance of the macro the default value is: `'; + ''' %put - `depList` [technical] contains the list of dependencies required by the package.; '' !!' / + ''' %put %str( )for _this_ instance of the macro the default value is: `' @; %if %superq(packageReqPackages) ne %then %do; do i = 1 to countw(packageReqPackages, ",", "Q"); @@ -1514,50 +1644,50 @@ data _null_; put reqPackage @; end; %end; - put +(-1) '`.;' / - ' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; ' / - ' %put with the SAS Packages Framework version 20230112.; ' / - ' %put ****************************************************************************; ' / - ' %GOTO theEndOfTheMacro; ' / - ' %end; ' / + put +(-1) '`.; '' !!' / + ''' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; '' !!' / + ''' %put with the SAS Packages Framework version 20230207.; '' !! ' / + ''' %put ****************************************************************************; '' !! ' / + ''' %GOTO theEndOfTheMacro; '' !! ' / + ''' %end; '' !! ' / - ' %local localSYSmacroName localPackageName i depListNm; ' / - ' %let localSYSmacroName = &sysmacroname.; ' / - ' %let localSYSmacroName = %LOWCASE(&localSYSmacroName.); ' / - ' %let localPackageName = %substr(&localSYSmacroName.,1,%eval(%length(&localSYSmacroName.)-3));' / - ' ' / - ' %if %superq(depList) ne %then ' / - ' %do; ' / - ' %do i = 1 %to %sysfunc(countw(&depList.,%str( ))); ' / - ' %let depListNm = %scan(&depList.,&i.,%str( )); ' / - ' %if %SYSMACEXIST(&depListNm.IML) %then ' / - ' %do; ' / - ' %&depListNm.IML(list=0,err=&err.,resetIMLstorage=0) ' / - ' %end; ' / - ' %end; ' / - ' %end; ' / - ' %if %sysfunc(CEXIST(WORK.&localSYSmacroName.)) %then ' / - ' %do; ' / - ' %put NOTE: Loading IML Modules from package &localPackageName.; ' / - ' RESET STORAGE = WORK.&localSYSmacroName.; ' / - ' LOAD MODULE = _all_; ' / - ' %end; ' / - ' %else ' / - ' %do; ' / - ' %put %superq(err): IML Modules not provided; ' / - ' %let list = 0; ' / - ' %end; ' / - ' %if 1 = %superq(list) %then ' / - ' %do; ' / - ' SHOW MODULES; ' / - ' %end; ' / - ' %if 1 = %superq(resetIMLstorage) %then ' / - ' %do; ' / - ' RESET STORAGE = WORK.IMLSTOR; ' / - ' %end; ' / - '%theEndOfTheMacro: %mend; ' ; + ''' %local localSYSmacroName localPackageName i depListNm; '' !! ' / + ''' %let localSYSmacroName = &sysmacroname.; '' !! ' / + ''' %let localSYSmacroName = %LOWCASE(&localSYSmacroName.); '' !! ' / + ''' %let localPackageName = %substr(&localSYSmacroName.,1,%eval(%length(&localSYSmacroName.)-3));'' !!' / - put "'; rc = resolve(IML); run;"; /* wrapper end */ + ''' %if %superq(depList) ne %then '' !!' / + ''' %do; '' !!' / + ''' %do i = 1 %to %sysfunc(countw(&depList.,%str( ))); '' !!' / + ''' %let depListNm = %scan(&depList.,&i.,%str( )); '' !!' / + ''' %if %SYSMACEXIST(&depListNm.IML) %then '' !!' / + ''' %do; '' !!' / + ''' %&depListNm.IML(list=0,err=&err.,resetIMLstorage=0) '' !!' / + ''' %end; '' !!' / + ''' %end; '' !!' / + ''' %end; '' !!' / + ''' %if %sysfunc(CEXIST(WORK.&localSYSmacroName.)) %then '' !!' / + ''' %do; '' !!' / + ''' %put NOTE: Loading IML Modules from package &localPackageName.; '' !!' / + ''' RESET STORAGE = WORK.&localSYSmacroName.; '' !!' / + ''' LOAD MODULE = _all_; '' !!' / + ''' %end; '' !!' / + ''' %else '' !!' / + ''' %do; '' !!' / + ''' %put %superq(err): IML Modules not provided; '' !!' / + ''' %let list = 0; '' !!' / + ''' %end; '' !!' / + ''' %if 1 = %superq(list) %then '' !!' / + ''' %do; '' !!' / + ''' SHOW MODULES; '' !!' / + ''' %end; '' !!' / + ''' %if 1 = %superq(resetIMLstorage) %then '' !!' / + ''' %do; '' !!' / + ''' RESET STORAGE = WORK.IMLSTOR; '' !!' / + ''' %end; '' !!' / + '''%theEndOfTheMacro: %mend; '' ' ; + + put "; rc = resolve(IML); run;"; /* wrapper end */ put '%put NOTE: Macro named:; '; put '%put %nrstr( %%)' "&packageName." 'IML(); '; @@ -2036,7 +2166,7 @@ data _null_; put " stop; "; put "run; "; - /* cleanup */ + /* clean-up */ put "proc delete data = WORK._last_; "; put "run; "; put 'options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.; ' /; @@ -2124,7 +2254,15 @@ data _null_; put ' end ; '; %end; - put 'put "***"; put "* SAS package generated by generatePackage, version 20230112 *"; put "***";'; + + %if %superq(additionalContent) NE %then + %do; + put 'put ;' / 'put @3 ''Package contains additional content, run: %loadPackageAddCnt(' "&packageName." ') to load it'';'; + put "put @3 'or look for the %lowcase(&packageName.)_AdditionalContent directory in the Packages fileref';"; + 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 20230207 *"; put "***";'; put 'run; ' /; @@ -2247,7 +2385,7 @@ data _null_; if NOBS = 0 then stop; set &filesWithCodes. nobs = NOBS end = EOF; - if (upcase(type) not in: ('TEST')); /* test files are not to be copied */ + if (upcase(type) not in: ('TEST' 'ADDCNT')); /* test files and additional content are not to be copied */ call execute(cat ('filename _SPFIN_ "', catx('/', base, folder, file), '";')); call execute(cats("filename _SPFOUT_ ZIP '", base, "/%lowcase(&packageName.).zip' member='_", folder, ".", file, "';") ); @@ -2322,6 +2460,95 @@ data _null_; end; run; + +/* Additional Content */ +/* check if a file with additional content exists in the Work library */ +filename _SPFOUT_ "%sysfunc(pathname(work,L))/addcnt.zip"; +%if %sysfunc(fexist(_SPFOUT_)) %then + %do; + %if %sysfunc(fdelete(_SPFOUT_)) NE 0 %then + %do; + %put ERROR: Additional content for package not generated!; + %put ERROR- Delete "%sysfunc(pathname(work,L))/addcnt.zip" file; + %put ERROR- and try again.; + %let additionalContent=; + %end; + %end; +filename _SPFOUT_ clear; + +%if %superq(additionalContent) NE %then + %do; + + %put ; + %put Status of additional content for the package:; + /* create "addcnt.zip" file for Additional Content */ + data _null_; + set &filesWithCodes.addCnt; + if dir=0; + + rc1=filename("_SPFIN_" , catx('/',root,dname,filename), "disk", "lrecl=1 recfm=n"); + rc1txt=sysmsg(); + rc2=filename("_SPFOUT_", "%sysfunc(pathname(work,L))/addcnt.zip", "ZIP" + ,"lrecl=1 recfm=n member='" !! catx('/',dname,filename) !! "'"); + rc2txt=sysmsg(); + + do _N_ = 1 to 10; + rc3=fcopy("_SPFIN_","_SPFOUT_"); + rc3txt=sysmsg(); + if fexist("_SPFOUT_") then leave; + else sleeprc=sleep(0.25,1); + end; + + rc4=fexist("_SPFOUT_"); + rc4txt=sysmsg(); + + if rc4 = 0 then + do; + call symputX("createPackageContentStatus",1,"L"); + put "ERROR:" @; + end; + put "AddCnt: " dname +(-1) "/" filename / + "Try=" _N_ "Return codes:" / + (rc:) (=); + + rc1=filename("_SPFIN_"); + rc2=filename("_SPFOUT_"); + run; + + /* inserting addcnt.zip into the package file */ + %put ; + %put Status of inserting "addcnt.zip" into the package file:; + data _null_; + rc1=filename("_SPFIN_" , "%sysfunc(pathname(work,L))/addcnt.zip", "disk", "lrecl=1 recfm=n"); + rc1txt=sysmsg(); + rc2=filename("_SPFOUT_", pathname("&zipReferrence.","F"), "ZIP", "lrecl=1 recfm=n member='addcnt.zip'"); + rc2txt=sysmsg(); + + do _N_ = 1 to 10; + rc3=fcopy("_SPFIN_","_SPFOUT_"); + rc3txt=sysmsg(); + if fexist("_SPFOUT_") then leave; + else sleeprc=sleep(0.25,1); + end; + + rc4=fexist("_SPFOUT_"); + rc4txt=sysmsg(); + + if rc4 then + rc5=fdelete("_SPFIN_"); + else + do; + call symputX("createPackageContentStatus",1,"L"); + put "ERROR:" @; + end; + put "File addcnt.zip, Try=" _N_ "Return codes:" / + (rc:) (=); + + rc1=filename("_SPFIN_"); + rc2=filename("_SPFOUT_"); + run; +%end; + options notes source; %put NOTE-; %put NOTE-######################################################; @@ -2444,6 +2671,10 @@ run; put @n '%unloadPackage'"(&packageName.,"; put @n " path=&filesLocation.) " /; + /* additional content */ + put @n '%loadPackageAddCnt'"(&packageName.,"; + put @n " path=&filesLocation.) " /; + put ; put '***************************************************'; run; @@ -2661,6 +2892,10 @@ data _null_; put '%unloadPackage'"(&packageName.,"; put " path=&filesLocation.) " /; + /* additional content */ + put '%loadPackageAddCnt'"(&packageName.,"; + put " path=&filesLocation.) " /; + put "filename packages '&filesLocation.';" / '%listPackages() ' /; @@ -2909,6 +3144,11 @@ options "elenmax_tmp.; proc sql; drop table &filesWithCodes.; + + %if %sysfunc(exist(&filesWithCodes.addCnt)) %then + %do; + drop table &filesWithCodes.addCnt; + %end; quit; /* turn on the original value of the note about quoted string length */ diff --git a/SPF/Macros/helppackage.sas b/SPF/Macros/helppackage.sas index e81f715..8c20d4b 100644 --- a/SPF/Macros/helppackage.sas +++ b/SPF/Macros/helppackage.sas @@ -24,7 +24,7 @@ */ )/secure /*** HELP END ***/ -des = 'Macro to get help about SAS package, version 20230112. Run %helpPackage() for help info.' +des = 'Macro to get help about SAS package, version 20230207. Run %helpPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -39,7 +39,7 @@ des = 'Macro to get help about SAS package, version 20230112. Run %helpPackage() %put ### This is short help information for the `helpPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to get help about SAS packages, version `20230112` #; + %put # Macro to get help about SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -169,7 +169,7 @@ TODO: - add MD5(&packageName.) value hash instead "package" word in filenames [DONE] */ -/* Macros to install SAS packages, version 20230112 */ +/* Macros to install SAS packages, version 20230207 */ /* 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 diff --git a/SPF/Macros/installpackage.sas b/SPF/Macros/installpackage.sas index 5c1038f..31e76f8 100644 --- a/SPF/Macros/installpackage.sas +++ b/SPF/Macros/installpackage.sas @@ -10,11 +10,13 @@ , URLuser = /* user name for the password protected URLs */ , URLpass = /* password for the password protected URLs */ , URLoptions = /* options for the `sourcePath` URLs */ +, loadAddCnt=0 /* should the additional content be loaded? + default is 0 - means No, 1 means Yes */ ) /secure minoperator /*** HELP END ***/ -des = 'Macro to install SAS package, version 20230112. Run %%installPackage() for help info.' +des = 'Macro to install SAS package, version 20230207. Run %%installPackage() for help info.' ; %if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then %do; @@ -29,7 +31,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo %put ### This is short help information for the `installPackage` macro #; %put #--------------------------------------------------------------------------------------------#;; %put # #; - %put # Macro to install SAS packages, version `20230112` #; + %put # Macro to install SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -86,6 +88,13 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo %put # - `URLoptions=` Options for the `sourcePath` URLs filename. Consult the SAS #; %put # documentation for the further details. #; %put # #; + %put # - `loadAddCnt=` *Optional.* A package zip may contain additional #; + %put # content. The option indicates if it should be loaded #; + %put # Default value of zero (`0`) means "No", one (`1`) #; + %put # means "Yes". Content is extracted into the **packages** fileref #; + %put # directory in `_AdditionalContent` folder. #; + %put # For other locations use `%nrstr(%%loadPackageAddCnt())` macro. #; + %put # #; %put #--------------------------------------------------------------------------------------------#; %put # #; %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; @@ -286,6 +295,8 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo filename out list; */ /* copy the file byte-by-byte */ + %local installationRC; + %let installationRC=1; data _null_; length filein 8 out_path in_path $ 4096; out_path = pathname ("&out"); @@ -323,7 +334,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo if symgetn("replace")=1 then do; put @2 "The following file will be replaced during " - / @2 "instalation of the &packageName. package: " + / @2 "installation of the &packageName. package: " / @5 out_path; rc = FDELETE("&out"); rc = FCOPY("&in", "&out"); @@ -337,10 +348,24 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo end; put @2 "Done with return code " rc= "(zero = success)"; + call symputX("installationRC", rc, "L"); run; filename &in clear; filename &out clear; + + %if 1 = &loadAddCnt. + AND 0 = &installationRC. + AND NOT (%upcase(&packageName.) in (SPFINIT SASPACKAGEFRAMEWORK SASPACKAGESFRAMEWORK)) + %then + %do; + %put; %put - Additional content loading - Start -; + %loadPackageAddCnt(&packageName. + ,path=&firstPackagesPath. + ,target=&firstPackagesPath. + ) + %put - Additional content loading - End -; + %end; %put *** %lowcase(&packageName.) end *******************************************; /*-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-*/ %end; @@ -458,7 +483,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo /* Macro to list SAS packages in packages folder. - Version 20230112 + Version 20230207 A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating diff --git a/SPF/Macros/listpackages.sas b/SPF/Macros/listpackages.sas index b920893..709807e 100644 --- a/SPF/Macros/listpackages.sas +++ b/SPF/Macros/listpackages.sas @@ -1,7 +1,7 @@ /*+listPackages+*/ %macro listPackages()/secure PARMBUFF -des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20230112.' +des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20230207.' ; %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 `20230112` #; + %put # Macro to list available SAS packages, version `20230207` #; %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. ¬es_tmp. &source_tmp.; /* Macro to generate SAS packages. - Version 20230112 + Version 20230207 A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating diff --git a/SPF/Macros/loadpackage.sas b/SPF/Macros/loadpackage.sas index 9b31eb8..ce61f7d 100644 --- a/SPF/Macros/loadpackage.sas +++ b/SPF/Macros/loadpackage.sas @@ -29,9 +29,11 @@ to be loaded into the session, default value "*" means "load all elements of the package" */ +, loadAddCnt=0 /* should the additional content be loaded? + default is 0 - means No, 1 means Yes */ )/secure /*** HELP END ***/ -des = 'Macro to load SAS package, version 20230112. Run %loadPackage() for help info.' +des = 'Macro to load SAS package, version 20230207. Run %loadPackage() for help info.' minoperator ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then @@ -47,7 +49,7 @@ minoperator %put ### This is short help information for the `loadPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to *load* SAS packages, version `20230112` #; + %put # Macro to *load* SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -96,6 +98,13 @@ minoperator %put # Default value of an asterisk (*) means: #; %put # "load all elements of the package". #; %put # #; + %put # - `loadAddCnt=` *Optional.* A package zip may contain additional #; + %put # content. The option indicates if it should be loaded #; + %put # Default value of zero (`0`) means "No", one (`1`) #; + %put # means "Yes". Content is extracted into the **Work** #; + %put # directory in `_AdditionalContent` folder. #; + %put # For other locations use `%nrstr(%%loadPackageAddCnt())` macro. #; + %put # #; %put #-------------------------------------------------------------------------------#; %put # #; %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; @@ -187,6 +196,11 @@ minoperator %let cherryPick=*; %end; + %if %superq(loadAddCnt) NE 1 %then + %do; + %let loadAddCnt = 0; + %end; + filename &_PackageFileref_. &ZIP. /* put location of package myPackageFile.zip here */ "&path./%lowcase(&packageName.).&zip." %unquote(&options.) @@ -224,13 +238,20 @@ minoperator %if %bquote(&packageEncoding.) NE %then &packageEncoding. ; %else utf8 ; ; - %if %bquote(&lazyData.) = %then + %if %superq(lazyData) = %then %do; %local tempLoad_minoperator; %let tempLoad_minoperator = %sysfunc(getoption(minoperator)); options minoperator; /* MinOperator option is required for cherryPicking to work */ %include &_PackageFileref_.(load.sas) / &source2.; options &tempLoad_minoperator.; + %if 1 = &loadAddCnt. %then + %do; + %put; %put - Additional content loading - Start -; + %loadPackageAddCnt(&packageName., + path=&path.) + %put - Additional content loading - End -; + %end; %end; %else %do; diff --git a/SPF/Macros/loadpackageaddcnt.sas b/SPF/Macros/loadpackageaddcnt.sas new file mode 100644 index 0000000..2e11e3b --- /dev/null +++ b/SPF/Macros/loadpackageaddcnt.sas @@ -0,0 +1,365 @@ +/*+loadPackageAddCnt+*/ +/*** HELP START ***/ + +%macro loadPackageAddCnt( + packageName /* name of a package, + e.g. myPackage, + required and not null */ +, path = %sysfunc(pathname(packages)) /* location of a package, + by default it looks for + location of "packages" fileref */ +, target = %sysfunc(pathname(WORK)) /* a path in which the directory with + additional content will be generated, + name of directory created is set to + `&packageName._AdditionalContent` + default location is SAS work */ +, source2 = /*source2*/ /* option to print out details, + null by default */ +, requiredVersion = . /* option to test if loaded package + is provided in required version */ +)/secure +/*** HELP END ***/ +des = 'Macro to load additional content for a SAS package, version 20230207. Run %loadPackageAddCnt() for help info.' +minoperator +; +%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then + %do; + %local options_tmp ; + %let options_tmp = ls=%sysfunc(getoption(ls))ps=%sysfunc(getoption(ps)) + %sysfunc(getoption(notes)) %sysfunc(getoption(source)) + msglevel=%sysfunc(getoption(msglevel)) + ; + options NOnotes NOsource ls=MAX ps=MAX msglevel=N; + %put ; + %put #################################################################################; + %put ### This is short help information for the `loadPackageAddCnt` macro #; + %put #-------------------------------------------------------------------------------#; + %put # #; + %put # Macro to *load* additional content for a SAS package, version `20230207` #; + %put # #; + %put # A SAS package is a zip file containing a group #; + %put # of SAS codes (macros, functions, data steps generating #; + %put # data, etc.) wrapped up together and included by #; + %put # a single `load.sas` file (also embedded inside the zip). #; + %put # #; + %put # The `%nrstr(%%loadPackageAddCnt())` macro loads additional content #; + %put # for a package (of course only if one is provided). #; + %put # #; + %put #-------------------------------------------------------------------------------#; + %put #### Parameters: #; + %put # #; + %put # 1. `packageName` *Required.* Name of a package, e.g. myPackage, #; + %put # Required and not null, default use case: #; + %put # `%nrstr(%%loadPackageAddCnt(myPackage))`. #; + %put # If empty displays this help information. #; + %put # #; + %put # - `path=` *Optional.* Location of a package. By default it #; + %put # looks for location of the **packages** fileref, i.e. #; + %put # `%nrstr(%%sysfunc(pathname(packages)))` #; + %put # #; + %put # - `target=` *Optional.* Location where the directory with #; + %put # additional content will be generated, #; + %put # name of the directory created is set to #; + %put # `_AdditionalContent`, the default #; + %put # location is `%nrstr(%%sysfunc(pathname(WORK)))` #; + %put # #; + %put # - `source2=` *Optional.* Option to print out details about #; + %put # what is loaded, null by default. #; + %put # #; + %put # - `requiredVersion=` *Optional.* Option to test if the loaded #; + %put # package is provided in required version, #; + %put # default value: `.` #; + %put # #; + %put # #; + %put #-------------------------------------------------------------------------------#; + %put # #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; + %put # to learn more. #; + %put # #; + %put ### Example 1 ###################################################################; + %put # #; + %put # Enabling the SAS Package Framework #; + %put # from the local directory and installing & loading additional content #; + %put # for the SQLinDS package. #; + %put # #; + %put # Assume that the `SPFinit.sas` file #; + %put # is located in the "C:/SAS_PACKAGES/" folder. #; + %put # #; + %put # Run the following code in your SAS session: #; + %put ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas; + %put %nrstr( filename packages "C:/SAS_PACKAGES"; %%* setup a directory for packages; ); + %put %nrstr( %%include packages(SPFinit.sas); %%* enable the framework; ); + %put ; + %put %nrstr( %%installPackage(SQLinDS) %%* install the package from the Internet; ); + %put %nrstr( %%loadPackageAddCnt(SQLinDS) %%* load additional content for the package; ); + %put ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; + %put # #; + %put #################################################################################; + %put ; + options &options_tmp.; + %GOTO ENDofloadPackageAddCnt; + %end; + /* local variables for options */ + %local ls_tmp ps_tmp notes_tmp source_tmp stimer_tmp fullstimer_tmp msglevel_tmp zip; + %let ls_tmp = %sysfunc(getoption(ls)); + %let ps_tmp = %sysfunc(getoption(ps)); + %let notes_tmp = %sysfunc(getoption(notes)); + %let source_tmp = %sysfunc(getoption(source)); + %let stimer_tmp = %sysfunc(getoption(stimer)); + %let fullstimer_tmp = %sysfunc(getoption(fullstimer)); + %let msglevel_tmp = %sysfunc(getoption(msglevel)); + + %let zip = zip; + + options NOnotes NOsource ls=MAX ps=MAX NOfullstimer NOstimer msglevel=N; + + %local _PackageFileref_; + /* %let _PackageFileref_ = P%sysfunc(MD5(%lowcase(&packageName.)),hex7.); */ + data _null_; + call symputX("_PackageFileref_", "A" !! put(MD5("%lowcase(&packageName.)"), hex7. -L), "L"); + call symputX("_TargetFileref_", "T" !! 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_; + exists = 0; + length packages $ 32767 p $ 4096; + packages = resolve(symget("path")); + 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.")); + if exists then leave; + end; + if exists then call symputx("path", p, "L"); + run; + + filename &_PackageFileref_. &ZIP. + /* put location of package myPackageFile.zip here */ + "&path./%lowcase(&packageName.).&zip." + ; + %if %sysfunc(fexist(&_PackageFileref_.)) %then + %do; + + filename &_PackageFileref_. &ZIP. + /* check existence of addcnt.zip inside package */ + "&path./%lowcase(&packageName.).&zip." + member='addcnt.zip' + ; + %if %sysfunc(fexist(&_PackageFileref_.)) %then + %do; + + /* get metadata */ + filename &_PackageFileref_. &ZIP. + "&path./%lowcase(&packageName.).&zip." + ; + %include &_PackageFileref_.(packagemetadata.sas) / &source2.; + filename &_PackageFileref_. clear; + + /* test if required version of package is "good enough" */ + %local rV pV; + %let pV = %sysfunc(compress(&packageVersion.,.,kd)); + %let pV = %sysevalf((%scan(&pV.,1,.,M)+0)*1e8 + + (%scan(&pV.,2,.,M)+0)*1e4 + + (%scan(&pV.,3,.,M)+0)*1e0); + %let rV = %sysfunc(compress(&requiredVersion.,.,kd)); + %let rV = %sysevalf((%scan(&rV.,1,.,M)+0)*1e8 + + (%scan(&rV.,2,.,M)+0)*1e4 + + (%scan(&rV.,3,.,M)+0)*1e0); + + %if %sysevalf(&rV. > &pV.) %then + %do; + %put ERROR: Additional content for package &packageName. will not be loaded!; + %put ERROR- Required version is &requiredVersion.; + %put ERROR- Provided version is &packageVersion.; + %put ERROR- Verify installed version of the package.; + %put ERROR- ; + %GOTO WrongVersionOFPackageAddCnt; /*%RETURN;*/ + %end; + + /*options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.;*/ + filename &_PackageFileref_. &ZIP. + "&path./%lowcase(&packageName.).&zip." + member='addcnt.zip' + ; + /*********************/ + filename &_TargetFileref_. "&target."; + %if %sysfunc(fexist(&_TargetFileref_.)) %then + %do; + + %if %sysfunc(fileexist(%sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent)) %then + %do; /* dir for AC already exists */ + %put WARNING: Target location:; + %put WARNING- %sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent; + %put WARNING- already exist. Please remove it manually to upload additional contents.; + %put WARNING- Additional Content will not be loaded.; + %put WARNING- ; + %end; + %else + %do; + /*-+-+-+-*/ + /* create target location */ + %put INFO:; + %put Additional content will be located in:; + %put %sysfunc(dcreate(%lowcase(&packageName.)_AdditionalContent,%sysfunc(pathname(&_TargetFileref_.)))); + + %if NOT (%sysfunc(fileexist(%sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent))) %then + %do; /* dir for AC cannot be generated */ + %put ERROR: Cannot create target location:; + %put ERROR- %sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent; + %put ERROR- Additional Content will not be loaded.; + %put ERROR- ; + %end; + %else + %do; + /* extract addcnt.zip to work and, if successful, load additional content */ + %put NOTE- **%sysfunc(DoSubL(%nrstr( + ; + options nonotes nosource ps=min ls=max; + data _null_; + call symputx("AdditionalContent", 0, "L"); + + rc1=filename("in", pathname("&_PackageFileref_."), "ZIP", "lrecl=1 recfm=n member='addcnt.zip'"); + rc1txt=sysmsg(); + + if fexist("in") then + do; + rc2=filename("out", pathname("WORK")!!"/%lowcase(&packageName.)addcnt.zip", "disk", "lrecl=1 recfm=n"); + rc2txt=sysmsg(); + + rc3=fcopy("in","out"); + rc3txt=sysmsg(); + + if rc3 then put _N_ @12 (rc:) (=); + + if fexist("out") then + do; + call symputx("AdditionalContent", 1, "L"); + end; + else put "INFO: No additional content for package &packageName.."; + + rc1=filename("in"); + rc2=filename("out"); + end; + else + do; + call symputx("AdditionalContent", 0, "L"); + put "INFO: No additional content for package &packageName.."; + end; + run; + + %if &AdditionalContent. %then + %do; + filename f DUMMY; + filename f ZIP "%sysfunc(pathname(WORK))/%lowcase(&packageName.)addcnt.zip"; + options dlCreateDir; + libname outData "%sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent"; + + data WORK.__&_TargetFileref_._zip___; + did = dopen("f"); + if not did then + do; + put "ERROR: Can not access Additional Content data."; + stop; + end; + if did then + do i=1 to dnum(did); + file = dread(did, i); + output; + keep file; + end; + did = dclose(did); + run; + + data _null_; + set WORK.__&_TargetFileref_._zip___ end = EOF; + wc = countw(file,"/\"); + + libText = pathname("outData", "L"); + + if scan(file, wc , "/\") = "" then + do j = 1 to wc-1; + libText = catx("/", libText, scan(file, j , "/\")); + rc = libname("test", libText); + rc = libname("test"); + end; + else + do; + do j = 1 to wc-1; + libText = catx("/", libText, scan(file, j , "/\")); + rc = libname("test", libText); + rc = libname("test"); + end; + rc1 = filename("in", pathname("f"), "zip", "member='" !! strip(file) !! "' lrecl=1 recfm=n"); + rc1msg = sysmsg(); + rc2 = filename("out", catx("/", libText, scan(file, j , "/\")), "disk", "lrecl=1 recfm=n"); + rc2msg = sysmsg(); + + rc3 = fcopy("in", "out"); + rc3msg = sysmsg(); + + loadingProblem + (rc3 & 1); + + if rc3 then + do; + put "ERROR: Cannot extract: " file; + put (rc1 rc2 rc3) (=); + put (rc1msg rc2msg rc3msg) (/); + put "ERROR-"; + end; + crc1=filename("in"); + crc2=filename("out"); + end; + + if EOF and loadingProblem then + do; + put "ERROR: Not all files from Additional Content were extracted successfully!"; + end; + run; + + data _null_; + rc = fdelete("f"); + run; + + proc delete data = WORK.__&_TargetFileref_._zip___; + run; + + libname outData; + filename f DUMMY; + %end; + )))**; + %end; + /*-+-+-+-*/ + %end; + + %end; + %else + %do; + %put ERROR: Cannot access target location:; + %put ERROR- %sysfunc(pathname(&_TargetFileref_.)); + %put ERROR- Additional Content will not be loaded.; + %put ERROR- ; + %end; + filename &_TargetFileref_. clear; + /*********************/ + %end; + %else %put INFO: No additional content for &packageName. package.; + %end; + %else %put ERROR:[&sysmacroname] File "&path./&packageName..&zip." does not exist!; + filename &_PackageFileref_. clear; + + %WrongVersionOFPackageAddCnt: + + /* restore optionos */ + options ls = &ls_tmp. ps = &ps_tmp. + ¬es_tmp. &source_tmp. + &stimer_tmp. &fullstimer_tmp. + msglevel=&msglevel_tmp.; + +%ENDofloadPackageAddCnt: +%mend loadPackageAddCnt; + + + + +/**/ diff --git a/SPF/Macros/loadpackages.sas b/SPF/Macros/loadpackages.sas index c1235ea..8ef20d8 100644 --- a/SPF/Macros/loadpackages.sas +++ b/SPF/Macros/loadpackages.sas @@ -11,7 +11,7 @@ */ )/secure /*** HELP END ***/ -des = 'Macro to load multiple SAS packages at one run, version 20230112. Run %loadPackages() for help info.' +des = 'Macro to load multiple SAS packages at one run, version 20230207. 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 `20230112` #; + %put # Macro wrapper for the loadPackage macro, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; diff --git a/SPF/Macros/previewpackage.sas b/SPF/Macros/previewpackage.sas index a13c8f8..9b13293 100644 --- a/SPF/Macros/previewpackage.sas +++ b/SPF/Macros/previewpackage.sas @@ -23,7 +23,7 @@ */ )/secure /*** HELP END ***/ -des = 'Macro to preview content of a SAS package, version 20230112. Run %previewPackage() for help info.' +des = 'Macro to preview content of a SAS package, version 20230207. 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 20230112. Run %preview %put ### This is short help information for the `previewPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to get previwe of a SAS packages, version `20230112` #; + %put # Macro to get previwe of a SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; diff --git a/SPF/Macros/unloadpackage.sas b/SPF/Macros/unloadpackage.sas index 06b351f..fe93b5b 100644 --- a/SPF/Macros/unloadpackage.sas +++ b/SPF/Macros/unloadpackage.sas @@ -20,7 +20,7 @@ */ )/secure /*** HELP END ***/ -des = 'Macro to unload SAS package, version 20230112. Run %unloadPackage() for help info.' +des = 'Macro to unload SAS package, version 20230207. 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 20230112. Run %unloadPackage() for h %put ### This is short help information for the `unloadPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to unload SAS packages, version `20230112` #; + %put # Macro to unload SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; diff --git a/SPF/Macros/verifypackage.sas b/SPF/Macros/verifypackage.sas index d51735b..d29c5d8 100644 --- a/SPF/Macros/verifypackage.sas +++ b/SPF/Macros/verifypackage.sas @@ -13,7 +13,7 @@ hashing_file() function, SAS 9.4M6 */ )/secure /*** HELP END ***/ -des = 'Macro to verify SAS package with the hash digest, version 20230112. Run %verifyPackage() for help info.' +des = 'Macro to verify SAS package with the hash digest, version 20230207. 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 20230112. Run % %put ### This is short help information for the `verifyPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to verify SAS package with it hash digest, version `20230112` #; + %put # Macro to verify SAS package with it hash digest, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; diff --git a/SPF/SPFinit.md b/SPF/SPFinit.md index 4861021..f92b191 100644 --- a/SPF/SPFinit.md +++ b/SPF/SPFinit.md @@ -10,6 +10,7 @@ * [the `previewPackage` macro](#previewPackage) * [the `generatePackage` macro](#generatepackage) * [the `extendPackagesFileref` macro](#extendpackagesfileref) + * [the `loadPackageAddCnt` macro](#loadpackageaddcnt) * [Some more examples](#some-more-examples) --- @@ -21,7 +22,7 @@ A **SAS package** is an automatically generated, single, stand alone *zip* file The *purpose of a package* is to be a simple, and easy to access, code sharing medium, which will allow: on the one hand, to separate the code complex dependencies created by the developer from the user experience with the final product and, on the other hand, reduce developer's and user's unnecessary frustration related to a remote deployment process. -In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20230112`**. +In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20230207`**. **To get started with SAS Packages** try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). @@ -39,7 +40,7 @@ After assigning the directory do not change them when using the SPF since it may ## This is short help information for the `installPackage` macro -------------------------------------------------------------------------------------------- - Macro to install SAS packages, version `20230112` + Macro to install SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -94,6 +95,13 @@ After assigning the directory do not change them when using the SPF since it may - `URLoptions=` Options for the `sourcePath` URLs filename. Consult the SAS documentation for the further details. + + - `loadAddCnt=` *Optional.* A package zip may contain additional + content. The option indicates if it should be loaded + Default value of zero (`0`) means "No", one (`1`) + means "Yes". Content is extracted into the **packages** fileref + directory in `_AdditionalContent` folder. + For other locations use `%loadPackageAddCnt()` macro. -------------------------------------------------------------------------------------------- @@ -141,7 +149,7 @@ filename packages "C:/SAS_PACKAGES"; ## This is short help information for the `helpPackage` macro ------------------------------------------------------------------------------- - Macro to get help about SAS packages, version `20230112` + Macro to get help about SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -212,7 +220,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ## This is short help information for the `loadPackage` macro ------------------------------------------------------------------------------- - Macro to *load* SAS packages, version `20230112` + Macro to *load* SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -261,6 +269,13 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; Default value of an asterisk (*) means: "load all elements of the package". + - `loadAddCnt=` *Optional.* A package zip may contain additional + content. The option indicates if it should be loaded + Default value of zero (`0`) means "No", one (`1`) + means "Yes". Content is extracted into the **Work** + directory in `_AdditionalContent` folder. + For other locations use `%loadPackageAddCnt()` macro. + ------------------------------------------------------------------------------- Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` @@ -353,7 +368,7 @@ If created, those macros are automatically deleted when the `%unloadPackage()` m ## This is short help information for the `loadPackageS` macro ------------------------------------------------------------------------------- - Macro wrapper for the loadPackage macro, version `20230112` + Macro wrapper for the loadPackage macro, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -402,7 +417,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ## This is short help information for the `unloadPackage` macro ------------------------------------------------------------------------------- - Macro to unload SAS packages, version `20230112` + Macro to unload SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -467,7 +482,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ## This is short help information for the `listPackages` macro ----------------------------------------------------------------------------------------- - Macro to list available SAS packages, version `20230112` + Macro to list available SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -508,7 +523,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ## This is short help information for the `verifyPackage` macro ------------------------------------------------------------------------------- - Macro to verify SAS package with it hash digest, version `20230112` + Macro to verify SAS package with it hash digest, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -562,7 +577,7 @@ filename packages "C:/SAS_PACKAGES"; %* set-up a directory for packages; ## This is short help information for the `previewPackage` macro ------------------------------------------------------------------------------- - Macro to get previwe of a SAS packages, version `20230112` + Macro to get previwe of a SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -629,7 +644,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ## This is short help information for the `generatePackage` macro ------------------------------------------------------------------------------- - Macro to generate SAS packages, version `20230112` + Macro to generate SAS packages, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -799,6 +814,15 @@ All files have to have `.sas` extension. Other files are ignored. | +-... | + +-998_addcnt [additional content for the package, can be only one!, content of this + | | directory is copied "as is"] + | | + | +-arbitrary_file1 [an arbitrary file ] + | | + | +-subdirectory_with_files [an arbitrary directory with some files inside] + | | + | +-... + | +-999_test [tests executed during package generation, XCMD options must be turned-on] | | | +-test1.sas [a file with a code for test1] @@ -813,7 +837,7 @@ All files have to have `.sas` extension. Other files are ignored. ## This is short help information for the `extendPackagesFileref` macro ----------------------------------------------------------------------------------------- - Macro to list directories pointed by 'packages' fileref, version `20230112` + Macro to list directories pointed by 'packages' fileref, version `20230207` A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -848,9 +872,98 @@ filename packages ("C:/SAS_PK1" "C:/SAS_PK2"); %* setup a directory for packages filename packages ("D:/NEW_DIR" %extendPackagesFileref()); %* add new directory; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +----------------------------------------------------------------------------------------- +## This is short help information for the `loadPackageAddCnt` macro +------------------------------------------------------------------------------- + + Macro to load *additional content* for a SAS package, version `20230207` + + A SAS package is a zip file containing a group + of SAS codes (macros, functions, data steps generating + data, etc.) wrapped up together and included by + a single `load.sas` file (also embedded inside the zip). + + The `%loadPackageAddCnt()` macro loads additional content + for a package (of course only if one is provided). + +------------------------------------------------------------------------------- +### Parameters: + + 1. `packageName` *Required.* Name of a package, e.g. myPackage, + Required and not null, default use case: + `%loadPackageAddCnt(myPackage)`. + If empty displays this help information. + + - `path=` *Optional.* Location of a package. By default it + looks for location of the **packages** fileref, i.e. + `%sysfunc(pathname(packages))` + + - `target=` *Optional.* Location where the directory with + additional content will be generated, + name of the directory created is set to + `_AdditionalContent`, the default + location is `%sysfunc(pathname(WORK))` + + - `source2=` *Optional.* Option to print out details about + what is loaded, null by default. + + - `requiredVersion=` *Optional.* Option to test if the loaded + package is provided in required version, + default value: `.` + + +------------------------------------------------------------------------------- + + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` + to learn more. +------------------------------------------------------------------------------- + By *default* additional content is not deployed automatically e.g., + from security point of view, or production job doesn't need it to run, etc. + But if there is a need for it there are three ways to get it: + + - The first one ("by-the-book"), and also the recommended one. The additional + content is extracted during the automatic installation process using the + `\%installPackage()` macro. For this to work the `loadAddCnt=` parameter + has to be set to `1`. The additional content is extracted to the + `_AdditionalContent` directory into the same location where + the package is installed i.e., inside `packages` fileref location. + - The second one ("by-the-work"), when the additional content is extracted + during the loading process with the `\%loadPackage()` macro. For this to + work also the `loadAddCnt=` parameter has to be set to `1`. The additional + content is extracted to the `_AdditionalContent` directory + inside the `Work` library location. + - The third one ("by-the-user"), when the additional content is extracted + with dedicated `%loadPackageAddCnt()` macro. By default the additional + content is extracted to the `_AdditionalContent` directory + inside the `Work` library location too, but it can be altered by changing + the `target=` parameter, which indicates the location. + + If done "by-the-book", or "by-the-user" with `target=` parameter, the + additional content is not automatically deleted when SAS session ends, + in this case the "additionals" have to be deleted manually by the User. + + +### Example 1 ################################################################## + + Enabling the SAS Package Framework + from the local directory and installing & loading additional content + for the SQLinDS package. + + Assume that the `SPFinit.sas` file + is located in the "C:/SAS_PACKAGES/" folder. + + Run the following code in your SAS session: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; +%include packages(SPFinit.sas); %* enable the framework; + +%installPackage(SQLinDS) %* install the package from the Internet; +%loadPackageAddCnt(SQLinDS) %* load additional content for the package; +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ------------------------------------------------------------------------------- ## Some more examples ############################################################# diff --git a/SPF/SPFinit.sas b/SPF/SPFinit.sas index 2470c66..a5ecf36 100644 --- a/SPF/SPFinit.sas +++ b/SPF/SPFinit.sas @@ -12,7 +12,7 @@ /* */ /* Here is the official version: */ /* - Copyright (c) 2019 - 2022 Bartosz Jablonski (yabwon@gmail.com) + Copyright (c) 2019 - 2023 Bartosz Jablonski (yabwon@gmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -42,7 +42,7 @@ - to unload, or - to generate SAS packages. - Version 20230112. + Version 20230207. See examples below. A SAS package is a zip file containing a group of files @@ -84,9 +84,11 @@ to be loaded into the session, default value "*" means "load all elements of the package" */ +, loadAddCnt=0 /* should the additional content be loaded? + default is 0 - means No, 1 means Yes */ )/secure /*** HELP END ***/ -des = 'Macro to load SAS package, version 20230112. Run %loadPackage() for help info.' +des = 'Macro to load SAS package, version 20230207. Run %loadPackage() for help info.' minoperator ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then @@ -102,7 +104,7 @@ minoperator %put ### This is short help information for the `loadPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to *load* SAS packages, version `20230112` #; + %put # Macro to *load* SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -151,6 +153,13 @@ minoperator %put # Default value of an asterisk (*) means: #; %put # "load all elements of the package". #; %put # #; + %put # - `loadAddCnt=` *Optional.* A package zip may contain additional #; + %put # content. The option indicates if it should be loaded #; + %put # Default value of zero (`0`) means "No", one (`1`) #; + %put # means "Yes". Content is extracted into the **Work** #; + %put # directory in `_AdditionalContent` folder. #; + %put # For other locations use `%nrstr(%%loadPackageAddCnt())` macro. #; + %put # #; %put #-------------------------------------------------------------------------------#; %put # #; %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; @@ -242,6 +251,11 @@ minoperator %let cherryPick=*; %end; + %if %superq(loadAddCnt) NE 1 %then + %do; + %let loadAddCnt = 0; + %end; + filename &_PackageFileref_. &ZIP. /* put location of package myPackageFile.zip here */ "&path./%lowcase(&packageName.).&zip." %unquote(&options.) @@ -279,13 +293,20 @@ minoperator %if %bquote(&packageEncoding.) NE %then &packageEncoding. ; %else utf8 ; ; - %if %bquote(&lazyData.) = %then + %if %superq(lazyData) = %then %do; %local tempLoad_minoperator; %let tempLoad_minoperator = %sysfunc(getoption(minoperator)); options minoperator; /* MinOperator option is required for cherryPicking to work */ %include &_PackageFileref_.(load.sas) / &source2.; options &tempLoad_minoperator.; + %if 1 = &loadAddCnt. %then + %do; + %put; %put - Additional content loading - Start -; + %loadPackageAddCnt(&packageName., + path=&path.) + %put - Additional content loading - End -; + %end; %end; %else %do; @@ -329,7 +350,7 @@ minoperator */ )/secure /*** HELP END ***/ -des = 'Macro to unload SAS package, version 20230112. Run %unloadPackage() for help info.' +des = 'Macro to unload SAS package, version 20230207. Run %unloadPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -344,7 +365,7 @@ des = 'Macro to unload SAS package, version 20230112. Run %unloadPackage() for h %put ### This is short help information for the `unloadPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to unload SAS packages, version `20230112` #; + %put # Macro to unload SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -489,7 +510,7 @@ des = 'Macro to unload SAS package, version 20230112. Run %unloadPackage() for h */ )/secure /*** HELP END ***/ -des = 'Macro to get help about SAS package, version 20230112. Run %helpPackage() for help info.' +des = 'Macro to get help about SAS package, version 20230207. Run %helpPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -504,7 +525,7 @@ des = 'Macro to get help about SAS package, version 20230112. Run %helpPackage() %put ### This is short help information for the `helpPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to get help about SAS packages, version `20230112` #; + %put # Macro to get help about SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -634,7 +655,7 @@ TODO: - add MD5(&packageName.) value hash instead "package" word in filenames [DONE] */ -/* Macros to install SAS packages, version 20230112 */ +/* Macros to install SAS packages, version 20230207 */ /* 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 @@ -653,11 +674,13 @@ TODO: , URLuser = /* user name for the password protected URLs */ , URLpass = /* password for the password protected URLs */ , URLoptions = /* options for the `sourcePath` URLs */ +, loadAddCnt=0 /* should the additional content be loaded? + default is 0 - means No, 1 means Yes */ ) /secure minoperator /*** HELP END ***/ -des = 'Macro to install SAS package, version 20230112. Run %%installPackage() for help info.' +des = 'Macro to install SAS package, version 20230207. Run %%installPackage() for help info.' ; %if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then %do; @@ -672,7 +695,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo %put ### This is short help information for the `installPackage` macro #; %put #--------------------------------------------------------------------------------------------#;; %put # #; - %put # Macro to install SAS packages, version `20230112` #; + %put # Macro to install SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -729,6 +752,13 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo %put # - `URLoptions=` Options for the `sourcePath` URLs filename. Consult the SAS #; %put # documentation for the further details. #; %put # #; + %put # - `loadAddCnt=` *Optional.* A package zip may contain additional #; + %put # content. The option indicates if it should be loaded #; + %put # Default value of zero (`0`) means "No", one (`1`) #; + %put # means "Yes". Content is extracted into the **packages** fileref #; + %put # directory in `_AdditionalContent` folder. #; + %put # For other locations use `%nrstr(%%loadPackageAddCnt())` macro. #; + %put # #; %put #--------------------------------------------------------------------------------------------#; %put # #; %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; @@ -929,6 +959,8 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo filename out list; */ /* copy the file byte-by-byte */ + %local installationRC; + %let installationRC=1; data _null_; length filein 8 out_path in_path $ 4096; out_path = pathname ("&out"); @@ -966,7 +998,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo if symgetn("replace")=1 then do; put @2 "The following file will be replaced during " - / @2 "instalation of the &packageName. package: " + / @2 "installation of the &packageName. package: " / @5 out_path; rc = FDELETE("&out"); rc = FCOPY("&in", "&out"); @@ -980,10 +1012,24 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo end; put @2 "Done with return code " rc= "(zero = success)"; + call symputX("installationRC", rc, "L"); run; filename &in clear; filename &out clear; + + %if 1 = &loadAddCnt. + AND 0 = &installationRC. + AND NOT (%upcase(&packageName.) in (SPFINIT SASPACKAGEFRAMEWORK SASPACKAGESFRAMEWORK)) + %then + %do; + %put; %put - Additional content loading - Start -; + %loadPackageAddCnt(&packageName. + ,path=&firstPackagesPath. + ,target=&firstPackagesPath. + ) + %put - Additional content loading - End -; + %end; %put *** %lowcase(&packageName.) end *******************************************; /*-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-*/ %end; @@ -1101,7 +1147,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo /* Macro to list SAS packages in packages folder. - Version 20230112 + Version 20230207 A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -1122,7 +1168,7 @@ des = 'Macro to install SAS package, version 20230112. Run %%installPackage() fo /*+listPackages+*/ %macro listPackages()/secure PARMBUFF -des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20230112.' +des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20230207.' ; %if %QUPCASE(&SYSPBUFF.) = %str(%(HELP%)) %then %do; @@ -1137,7 +1183,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 `20230112` #; + %put # Macro to list available SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -1287,7 +1333,7 @@ options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.; /* Macro to generate SAS packages. - Version 20230112 + Version 20230207 A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -1324,7 +1370,7 @@ options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.; default value 1 means "delete tests work" */ )/ secure minoperator /*** HELP END ***/ -des = 'Macro to generate SAS packages, version 20230112. Run %generatePackage() for help info.' +des = 'Macro to generate SAS packages, version 20230207. Run %generatePackage() for help info.' ; %if (%superq(filesLocation) = ) OR (%qupcase(&filesLocation.) = HELP) %then %do; @@ -1339,7 +1385,7 @@ des = 'Macro to generate SAS packages, version 20230112. Run %generatePackage() %put ### This is short help information for the `generatePackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to generate SAS packages, version `20230112` #; + %put # Macro to generate SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -1397,7 +1443,7 @@ des = 'Macro to generate SAS packages, version 20230112. Run %generatePackage() %end; %put --- generatePackage START ---; -%local zipReferrence filesWithCodes _DESCR_ _LIC_ _DUMMY_ _RC_ _PackageFileref_; +%local zipReferrence filesWithCodes _DESCR_ _LIC_ _DUMMY_ _RC_ _PackageFileref_ additionalContent; %let zipReferrence = _%sysfunc(datetime(), hex6.)_; %let filesWithCodes = WORK._%sysfunc(datetime(), hex16.)_; %let _DESCR_ = _%sysfunc(datetime(), hex6.)d; @@ -1792,6 +1838,15 @@ DESCRIPTION END: | +-... | + +-998_addcnt [additional content for the package, can be only one!, content of this + | | directory is copied "as is"] + | | + | +-arbitrary_file1 [an arbitrary file ] + | | + | +-subdirectory_with_files [an arbitrary directory with some files inside] + | | + | +-... + | +-999_test [tests executed during package generation, XCMD options must be turned-on] | | | +-test1.sas [a file with a code for test1] @@ -1854,7 +1909,9 @@ data &filesWithCodes.; ('LIBNAME' 'MACRO' /*'MACROS'*/ 'DATA' 'FUNCTION' /*'FUNCTIONS'*/ 'FORMAT' /*'FORMATS'*/ 'IMLMODULE' 'PROTO' 'EXEC' 'CLEAN' - 'LAZYDATA' 'TEST' 'CASLUDF')) + 'LAZYDATA' 'TEST' 'CASLUDF' + 'ADDCNT' + )) then do; put "WARNING: Type " type 'is not yet supported.' / @@ -1862,30 +1919,53 @@ data &filesWithCodes.; "WARNING- No content from it will be used to generate the package." / " "; goto ignoreFolder; end; - - /* if it is a directory then read its content */ - if fileId then - do j = 1 to dnum(fileId); drop j; - file = dread(fileId, j); - if file NE lowcase(file) then - do; - put 'ERROR: File with code should be named ONLY with low case letters.'; - put 'ERROR- Current value is: ' file; - lowcase_name = lowcase(file); - put 'ERROR- Try to use: ' lowcase_name; - put; - _abort_ + 1; - end; - fileshort = substr(file, 1, length(file) - 4); /* filename.sas -> filename */ - if strip(reverse(file)) in: ('sas.') then output; /* ignore not ".sas" files */ - else - do; - put "WARNING: Only *.sas files are supported." / - "WARNING- The file: " file "will be ignored." / - "WARNING- "; - end; - end; + /* if it is a directory then read its content... */ + if fileId then + do; + /* ...but! do not use files from "additional content" directory */ + if NOT (upcase(type) =: 'ADDCNT') then + do j = 1 to dnum(fileId); drop j; + file = dread(fileId, j); + if file NE lowcase(file) then + do; + put 'ERROR: File with code should be named ONLY with low case letters.'; + put 'ERROR- Current value is: ' file; + lowcase_name = lowcase(file); + put 'ERROR- Try to use: ' lowcase_name; + put; + _abort_ + 1; + end; + fileshort = substr(file, 1, length(file) - 4); /* filename.sas -> filename */ + + if strip(reverse(file)) in: ('sas.') then output; /* ignore not ".sas" files */ + else + do; + put "WARNING: Only *.sas files are supported." / + "WARNING- The file: " file "will be ignored." / + "WARNING- "; + end; + end; + else + do; + file = "additionalcontent"; + fileshort = file; + additionalContent+1; + if additionalContent > 1 then + do; + put "WARNING: Only ONE directory with additional content is allowed!" / + "WARNING- Store all additional content in a single directory." / + "WARNING- The directory: " folder "will be ignored." / + "WARNING- "; + end; + else + do; + /*output;*/ + put "NOTE: Additional content located in " folder; + call symputX('additionalContent', folder, "L"); + end; + end; + end; ignoreFolder: ; rc = dclose(fileId); @@ -1981,6 +2061,55 @@ data _null_; end; run; +%if %superq(additionalContent) NE %then + %do; + /* code inspired by Kurt Bremser's "Talking to Your Host" article */ + /* https://communities.sas.com/t5/SAS-User-Groups-Library/WUSS-Presentation-Talking-to-Your-Host/ta-p/838344 */ + /* WUSS 2022 */ + + data &filesWithCodes.addCnt; + run; + + data &filesWithCodes.addCnt; + length root dname $ 2048 filename $ 256 dir level 8; + root = "&filesLocation./&additionalContent."; + retain filename dname ' ' level 0 dir 1; + label + filename = "file" + dname = "folder" + ; + run; + + data &filesWithCodes.addCnt; + modify &filesWithCodes.addCnt; + rc1=filename('tmp',catx('/',root,dname,filename)); + rc2=dopen('tmp'); + dir = 1 & rc2; + if dir then + do; + dname=catx('/',dname,filename); + filename=' '; + end; + replace; + + if dir; + + level=level+1; + + do i=1 to dnum(rc2); + filename=dread(rc2,i); + output; + end; + rc3=dclose(rc2); + run; + + proc sort data=&filesWithCodes.addCnt(where=(filename is not null)); + by root dname filename; + run; + %end; + + + /* proc contents data = &filesWithCodes.; run; @@ -2000,9 +2129,31 @@ title6 "MD5 hashed fileref of package lowcase name: &_PackageFileref_."; %end; -proc print data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId); +proc print data = &filesWithCodes.(drop=base folderRef fileRef rc folderid _abort_ fileId additionalContent); run; title; + +%if %superq(additionalContent) NE %then + %do; + data _null_; + if not nobs then + do; + put "WARNING: Directory with additional content is empty."; + put "WARNING- Additional content will not be generated."; + call symputX("additionalContent", "", "L"); + end; + stop; + set &filesWithCodes.addCnt nobs=nobs; + run; + title2 "Package additional content:"; + proc print + data=&filesWithCodes.addCnt(drop=root dir level) + label + ; + run; + %end; + +title; options ¬esSourceOptions.; @@ -2447,7 +2598,7 @@ data _null_; set &filesWithCodes. end = EOF nobs=NOBS; by TYPE notsorted; - if (upcase(type) in: ('CLEAN' 'LAZYDATA' 'TEST' 'CASLUDF')) + if (upcase(type) in: ('CLEAN' 'LAZYDATA' 'TEST' 'CASLUDF' 'ADDCNT')) then continue; /* CASLUDF type will go in the next loop */ /* cleaning files are only included in unload.sas */ /* lazy data are only loaded on demand @@ -2459,7 +2610,7 @@ data _null_; ('LIBNAME' 'MACRO' /*'MACROS'*/ 'DATA' 'FUNCTION' /*'FUNCTIONS'*/ 'FORMAT' /*'FORMATS'*/ 'IMLMODULE' 'PROTO' 'EXEC' 'CLEAN' - 'LAZYDATA' 'TEST')) + 'LAZYDATA' 'TEST' 'ADDCNT')) then do; putlog 'WARNING: Type ' type 'is not yet supported.'; @@ -2584,23 +2735,48 @@ data _null_; /* FOOTERS for IML, FCMP, and PROTO - end */ /* add the link to the functions dataset, only for the first occurrence */ - if 1 = isFunction and (upcase(type)=:'FUNCTION') then + /*if 1 = isFunction and (upcase(type)=:'FUNCTION') then do; put "options APPEND=(cmplib = work.%lowcase(&packageName.fcmp));"/; + end;*/ + if 1 = FIRST.type and (upcase(type)=:'FUNCTION') then + do; + put '%sysfunc(ifc(0<' / + ' %sysfunc(findw((%sysfunc(getoption(cmplib)))' / + " ,work.%lowcase(&packageName.fcmp),""'( )'"",RIO))" / + ',,%str(options' " APPEND=(cmplib = work.%lowcase(&packageName.fcmp));)" / + '))' ; end; /* add the link to the proto functions dataset, only for the first occurrence */ - if 1 = isProto and (upcase(type)=:'PROTO') then + /*if 1 = isProto and (upcase(type)=:'PROTO') then do; put "options APPEND=(cmplib = work.%lowcase(&packageName.proto));"/; + end;*/ + if 1 = FIRST.type and (upcase(type)=:'PROTO') then + do; + put '%sysfunc(ifc(0<' / + ' %sysfunc(findw((%sysfunc(getoption(cmplib)))' / + " ,work.%lowcase(&packageName.proto),""'( )'"",RIO))" / + ',,%str(options' " APPEND=(cmplib = work.%lowcase(&packageName.proto));)" / + '))' ; end; /* add the link to the formats catalog, only for the first occurrence */ - if 1 = isFormat and (upcase(type)=:'FORMAT') then + /*if 1 = isFormat and (upcase(type)=:'FORMAT') then do; put "options INSERT=(fmtsearch = work.%lowcase(&packageName.format));"/; + end;*/ + if 1 = FIRST.type and (upcase(type)=:'FORMAT') then + do; + put '%sysfunc(ifc(0<' / + ' %sysfunc(findw((%sysfunc(getoption(fmtsearch)))' / + " ,work.%lowcase(&packageName.format),""'( )'"",RIO))" / + ',,%str(options' " INSERT=(fmtsearch = work.%lowcase(&packageName.format));)" / + '))' ; end; + end; /* loopOverTypes - start */ /* this is a header for CASLudf macro */ @@ -2634,7 +2810,7 @@ data _null_; ' !! '' %put %str( )when set to the value of `HELP` (upcase letters!) displays this help message.;''' / ' !! '' %put - `depList` [technical] contains the list of dependencies required by the package.;''' / - ' !! '' %put %str( )for _this_ instance of the macro the default value is: `'; + ' !! '' %put %str( )for _this_ instance of the macro the default value is: `' @; %if %superq(packageReqPackages) ne %then %do; do i = 1 to countw(packageReqPackages, ",", "Q"); @@ -2644,7 +2820,7 @@ data _null_; %end; put +(-1) '`.;''' / ' !! '' %put The macro generated: '' !! put(dtCASLudf, E8601DT19.-L) !! ";"' / - ' !! '' %put with the SAS Packages Framework version 20230112.;''' / + ' !! '' %put with the SAS Packages Framework version 20230207.;''' / ' !! '' %put ****************************************************************************;''' / ' !! '' %GOTO theEndOfTheMacro;''' / ' !! '' %end;''' ; @@ -2777,9 +2953,9 @@ data _null_; put '%if (%str(*)=%superq(cherryPick)) or 0 < &cherryPick_IML_ALL. %then %do;'; /* this "text wrapper" was added to get datetime generated when macro is compiled */ - put "data _null_; dtIML=datetime(); IML='"; /* wrapper start */ + put "data _null_; dtIML=datetime(); IML="; /* wrapper start */ - put '%macro ' " &packageName.IML(list=1,err=ERROR,resetIMLstorage=1,depList=" ; + put '''%macro ' " &packageName.IML(list=1,err=ERROR,resetIMLstorage=1,depList=" ; %if %superq(packageReqPackages) ne %then %do; length reqPackage $ 32; @@ -2789,25 +2965,25 @@ data _null_; end; put ; %end; - put ")/ des = ""IML Modules loader for &packageName. package""; " / - ' %if HELP = %superq(list) %then ' / - ' %do; ' / - ' %put ****************************************************************************; ' / - ' %put This is help for the `' "&packageName.IML" '` macro; ' / - ' %put Parameters (optional) are the following:; ' / + put "' !! ')/ des = ""IML Modules loader for &packageName. package""; ' !!" / + ''' %if HELP = %superq(list) %then '' !!' / + ''' %do; '' !!' / + ''' %put ****************************************************************************; '' !!' / + ''' %put This is help for the `' "&packageName.IML" '` macro; '' !!' / + ''' %put Parameters (optional) are the following:; '' !!' / - ' %put - `list` indicates if the list of loaded moduls should be displayed,; ' / - ' %put %str( )when set to the value of `1` (the default) runs `SHOW MODULES%str(;)`,; ' / - ' %put %str( )when set to the value of `HELP` (upcase letters!) displays this help message.;' / + ''' %put - `list` indicates if the list of loaded moduls should be displayed,; '' !!' / + ''' %put %str( )when set to the value of `1` (the default) runs `SHOW MODULES%str(;)`,; '' !!' / + ''' %put %str( )when set to the value of `HELP` (upcase letters!) displays this help message.;'' !!' / - ' %put - `resetIMLstorage` indicates if to reset default moduls storage,; ' / - ' %put %str( )when set to `1` (the default) runs `RESET STORAGE = WORK.IMLSTOR%str(;)`.; ' / + ''' %put - `resetIMLstorage` indicates if to reset default moduls storage,; '' !!' / + ''' %put %str( )when set to `1` (the default) runs `RESET STORAGE = WORK.IMLSTOR%str(;)`.; '' !!' / - ' %put - `err` [technical] indicates message type in case of missing modules catalog,; ' / - ' %put %str( )when set to the value of `ERROR` (the default) prints Error message.; ' / + ''' %put - `err` [technical] indicates message type in case of missing modules catalog,; '' !!' / + ''' %put %str( )when set to the value of `ERROR` (the default) prints Error message.; '' !!' / - ' %put - `depList` [technical] contains the list of dependencies required by the package.; ' / - ' %put %str( )for _this_ instance of the macro the default value is: `'; + ''' %put - `depList` [technical] contains the list of dependencies required by the package.; '' !!' / + ''' %put %str( )for _this_ instance of the macro the default value is: `' @; %if %superq(packageReqPackages) ne %then %do; do i = 1 to countw(packageReqPackages, ",", "Q"); @@ -2815,50 +2991,50 @@ data _null_; put reqPackage @; end; %end; - put +(-1) '`.;' / - ' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; ' / - ' %put with the SAS Packages Framework version 20230112.; ' / - ' %put ****************************************************************************; ' / - ' %GOTO theEndOfTheMacro; ' / - ' %end; ' / + put +(-1) '`.; '' !!' / + ''' %put The macro generated: ''' " !! put(dtIML, E8601DT19.-L) !! " '''; '' !!' / + ''' %put with the SAS Packages Framework version 20230207.; '' !! ' / + ''' %put ****************************************************************************; '' !! ' / + ''' %GOTO theEndOfTheMacro; '' !! ' / + ''' %end; '' !! ' / - ' %local localSYSmacroName localPackageName i depListNm; ' / - ' %let localSYSmacroName = &sysmacroname.; ' / - ' %let localSYSmacroName = %LOWCASE(&localSYSmacroName.); ' / - ' %let localPackageName = %substr(&localSYSmacroName.,1,%eval(%length(&localSYSmacroName.)-3));' / - ' ' / - ' %if %superq(depList) ne %then ' / - ' %do; ' / - ' %do i = 1 %to %sysfunc(countw(&depList.,%str( ))); ' / - ' %let depListNm = %scan(&depList.,&i.,%str( )); ' / - ' %if %SYSMACEXIST(&depListNm.IML) %then ' / - ' %do; ' / - ' %&depListNm.IML(list=0,err=&err.,resetIMLstorage=0) ' / - ' %end; ' / - ' %end; ' / - ' %end; ' / - ' %if %sysfunc(CEXIST(WORK.&localSYSmacroName.)) %then ' / - ' %do; ' / - ' %put NOTE: Loading IML Modules from package &localPackageName.; ' / - ' RESET STORAGE = WORK.&localSYSmacroName.; ' / - ' LOAD MODULE = _all_; ' / - ' %end; ' / - ' %else ' / - ' %do; ' / - ' %put %superq(err): IML Modules not provided; ' / - ' %let list = 0; ' / - ' %end; ' / - ' %if 1 = %superq(list) %then ' / - ' %do; ' / - ' SHOW MODULES; ' / - ' %end; ' / - ' %if 1 = %superq(resetIMLstorage) %then ' / - ' %do; ' / - ' RESET STORAGE = WORK.IMLSTOR; ' / - ' %end; ' / - '%theEndOfTheMacro: %mend; ' ; + ''' %local localSYSmacroName localPackageName i depListNm; '' !! ' / + ''' %let localSYSmacroName = &sysmacroname.; '' !! ' / + ''' %let localSYSmacroName = %LOWCASE(&localSYSmacroName.); '' !! ' / + ''' %let localPackageName = %substr(&localSYSmacroName.,1,%eval(%length(&localSYSmacroName.)-3));'' !!' / - put "'; rc = resolve(IML); run;"; /* wrapper end */ + ''' %if %superq(depList) ne %then '' !!' / + ''' %do; '' !!' / + ''' %do i = 1 %to %sysfunc(countw(&depList.,%str( ))); '' !!' / + ''' %let depListNm = %scan(&depList.,&i.,%str( )); '' !!' / + ''' %if %SYSMACEXIST(&depListNm.IML) %then '' !!' / + ''' %do; '' !!' / + ''' %&depListNm.IML(list=0,err=&err.,resetIMLstorage=0) '' !!' / + ''' %end; '' !!' / + ''' %end; '' !!' / + ''' %end; '' !!' / + ''' %if %sysfunc(CEXIST(WORK.&localSYSmacroName.)) %then '' !!' / + ''' %do; '' !!' / + ''' %put NOTE: Loading IML Modules from package &localPackageName.; '' !!' / + ''' RESET STORAGE = WORK.&localSYSmacroName.; '' !!' / + ''' LOAD MODULE = _all_; '' !!' / + ''' %end; '' !!' / + ''' %else '' !!' / + ''' %do; '' !!' / + ''' %put %superq(err): IML Modules not provided; '' !!' / + ''' %let list = 0; '' !!' / + ''' %end; '' !!' / + ''' %if 1 = %superq(list) %then '' !!' / + ''' %do; '' !!' / + ''' SHOW MODULES; '' !!' / + ''' %end; '' !!' / + ''' %if 1 = %superq(resetIMLstorage) %then '' !!' / + ''' %do; '' !!' / + ''' RESET STORAGE = WORK.IMLSTOR; '' !!' / + ''' %end; '' !!' / + '''%theEndOfTheMacro: %mend; '' ' ; + + put "; rc = resolve(IML); run;"; /* wrapper end */ put '%put NOTE: Macro named:; '; put '%put %nrstr( %%)' "&packageName." 'IML(); '; @@ -3337,7 +3513,7 @@ data _null_; put " stop; "; put "run; "; - /* cleanup */ + /* clean-up */ put "proc delete data = WORK._last_; "; put "run; "; put 'options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.; ' /; @@ -3425,7 +3601,15 @@ data _null_; put ' end ; '; %end; - put 'put "***"; put "* SAS package generated by generatePackage, version 20230112 *"; put "***";'; + + %if %superq(additionalContent) NE %then + %do; + put 'put ;' / 'put @3 ''Package contains additional content, run: %loadPackageAddCnt(' "&packageName." ') to load it'';'; + put "put @3 'or look for the %lowcase(&packageName.)_AdditionalContent directory in the Packages fileref';"; + 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 20230207 *"; put "***";'; put 'run; ' /; @@ -3548,7 +3732,7 @@ data _null_; if NOBS = 0 then stop; set &filesWithCodes. nobs = NOBS end = EOF; - if (upcase(type) not in: ('TEST')); /* test files are not to be copied */ + if (upcase(type) not in: ('TEST' 'ADDCNT')); /* test files and additional content are not to be copied */ call execute(cat ('filename _SPFIN_ "', catx('/', base, folder, file), '";')); call execute(cats("filename _SPFOUT_ ZIP '", base, "/%lowcase(&packageName.).zip' member='_", folder, ".", file, "';") ); @@ -3623,6 +3807,95 @@ data _null_; end; run; + +/* Additional Content */ +/* check if a file with additional content exists in the Work library */ +filename _SPFOUT_ "%sysfunc(pathname(work,L))/addcnt.zip"; +%if %sysfunc(fexist(_SPFOUT_)) %then + %do; + %if %sysfunc(fdelete(_SPFOUT_)) NE 0 %then + %do; + %put ERROR: Additional content for package not generated!; + %put ERROR- Delete "%sysfunc(pathname(work,L))/addcnt.zip" file; + %put ERROR- and try again.; + %let additionalContent=; + %end; + %end; +filename _SPFOUT_ clear; + +%if %superq(additionalContent) NE %then + %do; + + %put ; + %put Status of additional content for the package:; + /* create "addcnt.zip" file for Additional Content */ + data _null_; + set &filesWithCodes.addCnt; + if dir=0; + + rc1=filename("_SPFIN_" , catx('/',root,dname,filename), "disk", "lrecl=1 recfm=n"); + rc1txt=sysmsg(); + rc2=filename("_SPFOUT_", "%sysfunc(pathname(work,L))/addcnt.zip", "ZIP" + ,"lrecl=1 recfm=n member='" !! catx('/',dname,filename) !! "'"); + rc2txt=sysmsg(); + + do _N_ = 1 to 10; + rc3=fcopy("_SPFIN_","_SPFOUT_"); + rc3txt=sysmsg(); + if fexist("_SPFOUT_") then leave; + else sleeprc=sleep(0.25,1); + end; + + rc4=fexist("_SPFOUT_"); + rc4txt=sysmsg(); + + if rc4 = 0 then + do; + call symputX("createPackageContentStatus",1,"L"); + put "ERROR:" @; + end; + put "AddCnt: " dname +(-1) "/" filename / + "Try=" _N_ "Return codes:" / + (rc:) (=); + + rc1=filename("_SPFIN_"); + rc2=filename("_SPFOUT_"); + run; + + /* inserting addcnt.zip into the package file */ + %put ; + %put Status of inserting "addcnt.zip" into the package file:; + data _null_; + rc1=filename("_SPFIN_" , "%sysfunc(pathname(work,L))/addcnt.zip", "disk", "lrecl=1 recfm=n"); + rc1txt=sysmsg(); + rc2=filename("_SPFOUT_", pathname("&zipReferrence.","F"), "ZIP", "lrecl=1 recfm=n member='addcnt.zip'"); + rc2txt=sysmsg(); + + do _N_ = 1 to 10; + rc3=fcopy("_SPFIN_","_SPFOUT_"); + rc3txt=sysmsg(); + if fexist("_SPFOUT_") then leave; + else sleeprc=sleep(0.25,1); + end; + + rc4=fexist("_SPFOUT_"); + rc4txt=sysmsg(); + + if rc4 then + rc5=fdelete("_SPFIN_"); + else + do; + call symputX("createPackageContentStatus",1,"L"); + put "ERROR:" @; + end; + put "File addcnt.zip, Try=" _N_ "Return codes:" / + (rc:) (=); + + rc1=filename("_SPFIN_"); + rc2=filename("_SPFOUT_"); + run; +%end; + options notes source; %put NOTE-; %put NOTE-######################################################; @@ -3745,6 +4018,10 @@ run; put @n '%unloadPackage'"(&packageName.,"; put @n " path=&filesLocation.) " /; + /* additional content */ + put @n '%loadPackageAddCnt'"(&packageName.,"; + put @n " path=&filesLocation.) " /; + put ; put '***************************************************'; run; @@ -3962,6 +4239,10 @@ data _null_; put '%unloadPackage'"(&packageName.,"; put " path=&filesLocation.) " /; + /* additional content */ + put '%loadPackageAddCnt'"(&packageName.,"; + put " path=&filesLocation.) " /; + put "filename packages '&filesLocation.';" / '%listPackages() ' /; @@ -4210,6 +4491,11 @@ options "elenmax_tmp.; proc sql; drop table &filesWithCodes.; + + %if %sysfunc(exist(&filesWithCodes.addCnt)) %then + %do; + drop table &filesWithCodes.addCnt; + %end; quit; /* turn on the original value of the note about quoted string length */ @@ -4298,7 +4584,7 @@ TODO: (in Polish) */ )/secure /*** HELP END ***/ -des = 'Macro to load multiple SAS packages at one run, version 20230112. Run %loadPackages() for help info.' +des = 'Macro to load multiple SAS packages at one run, version 20230207. Run %loadPackages() for help info.' parmbuff ; %if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then @@ -4314,7 +4600,7 @@ parmbuff %put ### This is short help information for the `loadPackageS` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro wrapper for the loadPackage macro, version `20230112` #; + %put # Macro wrapper for the loadPackage macro, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -4411,7 +4697,7 @@ parmbuff hashing_file() function, SAS 9.4M6 */ )/secure /*** HELP END ***/ -des = 'Macro to verify SAS package with the hash digest, version 20230112. Run %verifyPackage() for help info.' +des = 'Macro to verify SAS package with the hash digest, version 20230207. Run %verifyPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -4426,7 +4712,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20230112. Run % %put ### This is short help information for the `verifyPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to verify SAS package with it hash digest, version `20230112` #; + %put # Macro to verify SAS package with it hash digest, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -4605,7 +4891,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20230112. Run % */ )/secure /*** HELP END ***/ -des = 'Macro to preview content of a SAS package, version 20230112. Run %previewPackage() for help info.' +des = 'Macro to preview content of a SAS package, version 20230207. Run %previewPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -4620,7 +4906,7 @@ des = 'Macro to preview content of a SAS package, version 20230112. Run %preview %put ### This is short help information for the `previewPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to get previwe of a SAS packages, version `20230112` #; + %put # Macro to get previwe of a SAS packages, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -4747,7 +5033,7 @@ des = 'Macro to preview content of a SAS package, version 20230112. Run %preview when empty the "packages" value is used */ )/secure /*** HELP END ***/ -des = 'Macro to list directories pointed by "packages" fileref, version 20230112. Run %extendPackagesFileref(HELP) for help info.' +des = 'Macro to list directories pointed by "packages" fileref, version 20230207. Run %extendPackagesFileref(HELP) for help info.' ; %if %QUPCASE(&packages.) = HELP %then @@ -4763,7 +5049,7 @@ des = 'Macro to list directories pointed by "packages" fileref, version 20230112 %put ### This is short help information for the `extendPackagesFileref` macro #; %put #-----------------------------------------------------------------------------------------#;; %put # #; - %put # Macro to list directories pointed by 'packages' fileref, version `20230112` #; + %put # Macro to list directories pointed by 'packages' fileref, version `20230207` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -4843,4 +5129,368 @@ filename packages list; */ +/*+loadPackageAddCnt+*/ +/*** HELP START ***/ + +%macro loadPackageAddCnt( + packageName /* name of a package, + e.g. myPackage, + required and not null */ +, path = %sysfunc(pathname(packages)) /* location of a package, + by default it looks for + location of "packages" fileref */ +, target = %sysfunc(pathname(WORK)) /* a path in which the directory with + additional content will be generated, + name of directory created is set to + `&packageName._AdditionalContent` + default location is SAS work */ +, source2 = /*source2*/ /* option to print out details, + null by default */ +, requiredVersion = . /* option to test if loaded package + is provided in required version */ +)/secure +/*** HELP END ***/ +des = 'Macro to load additional content for a SAS package, version 20230207. Run %loadPackageAddCnt() for help info.' +minoperator +; +%if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then + %do; + %local options_tmp ; + %let options_tmp = ls=%sysfunc(getoption(ls))ps=%sysfunc(getoption(ps)) + %sysfunc(getoption(notes)) %sysfunc(getoption(source)) + msglevel=%sysfunc(getoption(msglevel)) + ; + options NOnotes NOsource ls=MAX ps=MAX msglevel=N; + %put ; + %put #################################################################################; + %put ### This is short help information for the `loadPackageAddCnt` macro #; + %put #-------------------------------------------------------------------------------#; + %put # #; + %put # Macro to *load* additional content for a SAS package, version `20230207` #; + %put # #; + %put # A SAS package is a zip file containing a group #; + %put # of SAS codes (macros, functions, data steps generating #; + %put # data, etc.) wrapped up together and included by #; + %put # a single `load.sas` file (also embedded inside the zip). #; + %put # #; + %put # The `%nrstr(%%loadPackageAddCnt())` macro loads additional content #; + %put # for a package (of course only if one is provided). #; + %put # #; + %put #-------------------------------------------------------------------------------#; + %put #### Parameters: #; + %put # #; + %put # 1. `packageName` *Required.* Name of a package, e.g. myPackage, #; + %put # Required and not null, default use case: #; + %put # `%nrstr(%%loadPackageAddCnt(myPackage))`. #; + %put # If empty displays this help information. #; + %put # #; + %put # - `path=` *Optional.* Location of a package. By default it #; + %put # looks for location of the **packages** fileref, i.e. #; + %put # `%nrstr(%%sysfunc(pathname(packages)))` #; + %put # #; + %put # - `target=` *Optional.* Location where the directory with #; + %put # additional content will be generated, #; + %put # name of the directory created is set to #; + %put # `_AdditionalContent`, the default #; + %put # location is `%nrstr(%%sysfunc(pathname(WORK)))` #; + %put # #; + %put # - `source2=` *Optional.* Option to print out details about #; + %put # what is loaded, null by default. #; + %put # #; + %put # - `requiredVersion=` *Optional.* Option to test if the loaded #; + %put # package is provided in required version, #; + %put # default value: `.` #; + %put # #; + %put # #; + %put #-------------------------------------------------------------------------------#; + %put # #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; + %put # to learn more. #; + %put # #; + %put ### Example 1 ###################################################################; + %put # #; + %put # Enabling the SAS Package Framework #; + %put # from the local directory and installing & loading additional content #; + %put # for the SQLinDS package. #; + %put # #; + %put # Assume that the `SPFinit.sas` file #; + %put # is located in the "C:/SAS_PACKAGES/" folder. #; + %put # #; + %put # Run the following code in your SAS session: #; + %put ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas; + %put %nrstr( filename packages "C:/SAS_PACKAGES"; %%* setup a directory for packages; ); + %put %nrstr( %%include packages(SPFinit.sas); %%* enable the framework; ); + %put ; + %put %nrstr( %%installPackage(SQLinDS) %%* install the package from the Internet; ); + %put %nrstr( %%loadPackageAddCnt(SQLinDS) %%* load additional content for the package; ); + %put ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; + %put # #; + %put #################################################################################; + %put ; + options &options_tmp.; + %GOTO ENDofloadPackageAddCnt; + %end; + /* local variables for options */ + %local ls_tmp ps_tmp notes_tmp source_tmp stimer_tmp fullstimer_tmp msglevel_tmp zip; + %let ls_tmp = %sysfunc(getoption(ls)); + %let ps_tmp = %sysfunc(getoption(ps)); + %let notes_tmp = %sysfunc(getoption(notes)); + %let source_tmp = %sysfunc(getoption(source)); + %let stimer_tmp = %sysfunc(getoption(stimer)); + %let fullstimer_tmp = %sysfunc(getoption(fullstimer)); + %let msglevel_tmp = %sysfunc(getoption(msglevel)); + + %let zip = zip; + + options NOnotes NOsource ls=MAX ps=MAX NOfullstimer NOstimer msglevel=N; + + %local _PackageFileref_; + /* %let _PackageFileref_ = P%sysfunc(MD5(%lowcase(&packageName.)),hex7.); */ + data _null_; + call symputX("_PackageFileref_", "A" !! put(MD5("%lowcase(&packageName.)"), hex7. -L), "L"); + call symputX("_TargetFileref_", "T" !! 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_; + exists = 0; + length packages $ 32767 p $ 4096; + packages = resolve(symget("path")); + 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.")); + if exists then leave; + end; + if exists then call symputx("path", p, "L"); + run; + + filename &_PackageFileref_. &ZIP. + /* put location of package myPackageFile.zip here */ + "&path./%lowcase(&packageName.).&zip." + ; + %if %sysfunc(fexist(&_PackageFileref_.)) %then + %do; + + filename &_PackageFileref_. &ZIP. + /* check existence of addcnt.zip inside package */ + "&path./%lowcase(&packageName.).&zip." + member='addcnt.zip' + ; + %if %sysfunc(fexist(&_PackageFileref_.)) %then + %do; + + /* get metadata */ + filename &_PackageFileref_. &ZIP. + "&path./%lowcase(&packageName.).&zip." + ; + %include &_PackageFileref_.(packagemetadata.sas) / &source2.; + filename &_PackageFileref_. clear; + + /* test if required version of package is "good enough" */ + %local rV pV; + %let pV = %sysfunc(compress(&packageVersion.,.,kd)); + %let pV = %sysevalf((%scan(&pV.,1,.,M)+0)*1e8 + + (%scan(&pV.,2,.,M)+0)*1e4 + + (%scan(&pV.,3,.,M)+0)*1e0); + %let rV = %sysfunc(compress(&requiredVersion.,.,kd)); + %let rV = %sysevalf((%scan(&rV.,1,.,M)+0)*1e8 + + (%scan(&rV.,2,.,M)+0)*1e4 + + (%scan(&rV.,3,.,M)+0)*1e0); + + %if %sysevalf(&rV. > &pV.) %then + %do; + %put ERROR: Additional content for package &packageName. will not be loaded!; + %put ERROR- Required version is &requiredVersion.; + %put ERROR- Provided version is &packageVersion.; + %put ERROR- Verify installed version of the package.; + %put ERROR- ; + %GOTO WrongVersionOFPackageAddCnt; /*%RETURN;*/ + %end; + + /*options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.;*/ + filename &_PackageFileref_. &ZIP. + "&path./%lowcase(&packageName.).&zip." + member='addcnt.zip' + ; + /*********************/ + filename &_TargetFileref_. "&target."; + %if %sysfunc(fexist(&_TargetFileref_.)) %then + %do; + + %if %sysfunc(fileexist(%sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent)) %then + %do; /* dir for AC already exists */ + %put WARNING: Target location:; + %put WARNING- %sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent; + %put WARNING- already exist. Please remove it manually to upload additional contents.; + %put WARNING- Additional Content will not be loaded.; + %put WARNING- ; + %end; + %else + %do; + /*-+-+-+-*/ + /* create target location */ + %put INFO:; + %put Additional content will be located in:; + %put %sysfunc(dcreate(%lowcase(&packageName.)_AdditionalContent,%sysfunc(pathname(&_TargetFileref_.)))); + + %if NOT (%sysfunc(fileexist(%sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent))) %then + %do; /* dir for AC cannot be generated */ + %put ERROR: Cannot create target location:; + %put ERROR- %sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent; + %put ERROR- Additional Content will not be loaded.; + %put ERROR- ; + %end; + %else + %do; + /* extract addcnt.zip to work and, if successful, load additional content */ + %put NOTE- **%sysfunc(DoSubL(%nrstr( + ; + options nonotes nosource ps=min ls=max; + data _null_; + call symputx("AdditionalContent", 0, "L"); + + rc1=filename("in", pathname("&_PackageFileref_."), "ZIP", "lrecl=1 recfm=n member='addcnt.zip'"); + rc1txt=sysmsg(); + + if fexist("in") then + do; + rc2=filename("out", pathname("WORK")!!"/%lowcase(&packageName.)addcnt.zip", "disk", "lrecl=1 recfm=n"); + rc2txt=sysmsg(); + + rc3=fcopy("in","out"); + rc3txt=sysmsg(); + + if rc3 then put _N_ @12 (rc:) (=); + + if fexist("out") then + do; + call symputx("AdditionalContent", 1, "L"); + end; + else put "INFO: No additional content for package &packageName.."; + + rc1=filename("in"); + rc2=filename("out"); + end; + else + do; + call symputx("AdditionalContent", 0, "L"); + put "INFO: No additional content for package &packageName.."; + end; + run; + + %if &AdditionalContent. %then + %do; + filename f DUMMY; + filename f ZIP "%sysfunc(pathname(WORK))/%lowcase(&packageName.)addcnt.zip"; + options dlCreateDir; + libname outData "%sysfunc(pathname(&_TargetFileref_.))/%lowcase(&packageName.)_AdditionalContent"; + + data WORK.__&_TargetFileref_._zip___; + did = dopen("f"); + if not did then + do; + put "ERROR: Can not access Additional Content data."; + stop; + end; + if did then + do i=1 to dnum(did); + file = dread(did, i); + output; + keep file; + end; + did = dclose(did); + run; + + data _null_; + set WORK.__&_TargetFileref_._zip___ end = EOF; + wc = countw(file,"/\"); + + libText = pathname("outData", "L"); + + if scan(file, wc , "/\") = "" then + do j = 1 to wc-1; + libText = catx("/", libText, scan(file, j , "/\")); + rc = libname("test", libText); + rc = libname("test"); + end; + else + do; + do j = 1 to wc-1; + libText = catx("/", libText, scan(file, j , "/\")); + rc = libname("test", libText); + rc = libname("test"); + end; + rc1 = filename("in", pathname("f"), "zip", "member='" !! strip(file) !! "' lrecl=1 recfm=n"); + rc1msg = sysmsg(); + rc2 = filename("out", catx("/", libText, scan(file, j , "/\")), "disk", "lrecl=1 recfm=n"); + rc2msg = sysmsg(); + + rc3 = fcopy("in", "out"); + rc3msg = sysmsg(); + + loadingProblem + (rc3 & 1); + + if rc3 then + do; + put "ERROR: Cannot extract: " file; + put (rc1 rc2 rc3) (=); + put (rc1msg rc2msg rc3msg) (/); + put "ERROR-"; + end; + crc1=filename("in"); + crc2=filename("out"); + end; + + if EOF and loadingProblem then + do; + put "ERROR: Not all files from Additional Content were extracted successfully!"; + end; + run; + + data _null_; + rc = fdelete("f"); + run; + + proc delete data = WORK.__&_TargetFileref_._zip___; + run; + + libname outData; + filename f DUMMY; + %end; + )))**; + %end; + /*-+-+-+-*/ + %end; + + %end; + %else + %do; + %put ERROR: Cannot access target location:; + %put ERROR- %sysfunc(pathname(&_TargetFileref_.)); + %put ERROR- Additional Content will not be loaded.; + %put ERROR- ; + %end; + filename &_TargetFileref_. clear; + /*********************/ + %end; + %else %put INFO: No additional content for &packageName. package.; + %end; + %else %put ERROR:[&sysmacroname] File "&path./&packageName..&zip." does not exist!; + filename &_PackageFileref_. clear; + + %WrongVersionOFPackageAddCnt: + + /* restore optionos */ + options ls = &ls_tmp. ps = &ps_tmp. + ¬es_tmp. &source_tmp. + &stimer_tmp. &fullstimer_tmp. + msglevel=&msglevel_tmp.; + +%ENDofloadPackageAddCnt: +%mend loadPackageAddCnt; + + + + /**/ diff --git a/SPF/license.sas b/SPF/license.sas index cefec4b..93b96bd 100644 --- a/SPF/license.sas +++ b/SPF/license.sas @@ -1,4 +1,4 @@ -Copyright (c) 2019 - 2022 Bartosz Jablonski +Copyright (c) 2019 - 2023 Bartosz Jablonski Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal