evergreen
evergreen copied to clipboard
[Feature]: Return new/updated apps from Invoke-EvergreenLibraryUpdate
What is your feature request?
It would be a big QoL improvement if Invoke-EvergreenLibraryUpdate returned the object representations of the EvergreenLibrary Apps that were newly created when it ran. I.E. what apps were updated, or what apps were newly created as a result of the EvergreenLibrary.json file being modified. Also, the whatif functionality could show apps that will be downloaded/created if it ran. Currently the whatif output is not too useful.
As it is now, having to figure this out manually is not too bad but due to some bugs that create multiple entries for the same application in the application's json file there is quite a bit of parsing and filtering to do to figure out what actually got updated within a library.
Have you tested against the current version?
- [X] Yes, I've updated Evergreen and tested against the current version.
Have you reviewed the documentation?
- [X] Documentation at: https://stealthpuppy.com/evergreen/
Should Invoke-EvergreenLibraryUpdate save the date to the updated entry?
That could also be helpful. Would it be the date that Invoke-EvergreenLibraryUpdate ran or would it be the date that the application publisher released the new version?
The date that Invoke-EvergreenLibraryUpdate added the file to the library. Unfortunately not all applications in Evergreen can grab details on release date.
How about a function that compares two Evergreen Json files and returns the difference? You could snapshot the file with a copy operation before updating, then run the compare function that returns evergreen app objects?
+1 for this feature request - would be really helpful.
I prefer the initial approach outlined in the request - i.e. return an object with the new/updated apps - and potentially have the whatif function return that info without actually updating the library.
As also stated, sourceforge based apps return duplicate entries in the applications .json file each time library update is run - presumably due to the different sourceforge mirror url returned each time - e.g. for 7zip:
{ "Version": "23.01", "URI": "https://deac-fra.dl.sourceforge.net/project/sevenzip/7-Zip/23.01/7z2301.msi", "Type": "msi", "Size": "1501184", "Path": "C:\\SWRepoManagement\\EvergreenLib\\7zip\\23.01\\x86\\7z2301.msi", "Md5": "49780e0517aa248e7fd90f50674a2645", "Architecture": "x86" }, { "Version": "23.01", "URI": "https://deac-ams.dl.sourceforge.net/project/sevenzip/7-Zip/23.01/7z2301.msi", "Type": "msi", "Size": "1501184", "Path": "C:\\SWRepoManagement\\EvergreenLib\\7zip\\23.01\\x86\\7z2301.msi", "Md5": "49780e0517aa248e7fd90f50674a2645", "Architecture": "x86" },