Skip to content

A PowerShell module to return the latest version software and download links for various software

License

Notifications You must be signed in to change notification settings

koumdros/Evergreen

 
 

Repository files navigation

About

License PowerShell Gallery Version PowerShell Gallery Master build status

Evergreen is a simple PowerShell module to return the latest version and download URLs for a set of common enterprise applications. The module consists of a number of simple commands to use in scripts when performing several tasks including:

  • Retrieve the latest version of a particular software product when comparing against a version already installed or downloaded
  • Return the URL for the latest version of a software product if you need to download it locally

All functions consist of the following:

  • Get verb - the module provides functions to retrieve data only
  • Vendor - the vendor / developer of the application (e.g. Adobe, Google, Microsoft)
  • Product name - product names and optionally version (e.g. Reader DC, Chrome, VisualStudioCode)

Why

There are several community and commercial products that manage application deployment and updates already. This module isn't intended to compete against those. In fact, they can be complementary - for example, find the latest version of a particular software package for creating a Chocolatey submission.

Evergreen's focus is on simple integration for PowerShell scripts to provide product version numbers and download URLs. Data will only be pulled from official sources (vendor web site, GitHub, SourceForge etc.) and never a third party.

How

Scraping web pages to parse text and determine version strings and download URLs can be problematic when text in the page changes or the page is out of date. Evergreen instead uses approaches that should be less prone to failure by querying an API where possible. Evergreen uses several strategies to return the latest version of software:

  1. Application update APIs - by using the same approach as the application itself, Evergreen can consistently return the latest version number and download URI - e.g. Microsoft Edge, Mozilla Firefox or Microsoft OneDrive
  2. Repository APIs - repo hosters including GitHub and SourceForge have APIs that can be queried to return version and download links - e.g. Atom, Notepad++ or WinMerge
  3. Web page queries - often a vendor download pages will include a query when listing versions and download links. Evergreen can use the same approach - e.g. Microsoft FSLogix Apps or Zoom

Who

This module is maintained by the following community members

Versioning

The module uses a version notation that follows: YearMonth.Build. It is expected that the module will have changes on a regular basis, so the version numbering is intended to make it easy to understand when the last update was made.

Installing the Module

Install from the PowerShell Gallery

The Evergreen module is published to the PowerShell Gallery and can be found here: Evergreen. The module can be installed from the gallery with:

Install-Module -Name Evergreen
Import-Module -Name Evergreen

Updating the Module

If you have installed a previous version of the module from the gallery, you can install the latest update with Update-Module and the -Force parameter:

Update-Module -Name Evergreen -Force

Manual Installation from the Repository

The module can be downloaded from the GitHub source repository and includes the module in the Evergreen folder. The folder needs to be installed into one of your PowerShell Module Paths. To see the full list of available PowerShell Module paths, use $env:PSModulePath.split(';') in a PowerShell console.

Common PowerShell module paths include:

  • Current User: %USERPROFILE%\Documents\WindowsPowerShell\Modules\
  • All Users: %ProgramFiles%\WindowsPowerShell\Modules\
  • OneDrive: $env:OneDrive\Documents\WindowsPowerShell\Modules\

To install from the repository

  1. Download the master branch to your workstation
  2. Copy the contents of the Evergreen folder onto your workstation into the desired PowerShell Module path
  3. Open a Powershell console with the Run as Administrator option
  4. Run Set-ExecutionPolicy using the parameter RemoteSigned or Bypass
  5. Unblock the files with Get-ChildItem -Path <path to module> -Recurse | Unblock-File

Once installation is complete, you can validate that the module exists by running Get-Module -ListAvailable Evergreen. To use the module, load it with:

Import-Module Evergreen

About

A PowerShell module to return the latest version software and download links for various software

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PowerShell 100.0%