Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

alt

Daniel Nashed

Domino Download Bash Script leveraging My HCL Software Portal

Daniel Nashed – 26 November 2023 10:55:36

Introduction

The My HCL Software Portal is still an early access offering in parallel to Domino 14 early access.
It is planned to replace the Flexnet download soon and way easier and much faster to navigate.

The website just works and has awesome performance.

Domino 14 AutoUpdate leverages a new software download API to automatically download software into autoupdate.nsf.
The download just needs a download token, which can be requested if you are log into https://my.hcltechsw.com/.

I have been looking for a way to automatically download software for a couple of years.

Domino Download

Now with the new portal and this new API it is possible to write a Bash script for full command-line operations including a simple to use menu.

There are two different modes. By default the script uses My HCL Software navigation.
But alternatively it can also leverage Domino 14 Auto Update software.jwt, which has more granular information and allows a more structured download package browsing experience.

The script is a single file, which can install itself and all required packages -- Usually only JQ is missing.
More detailed information about the script is part of the start script project --> https://nashcom.github.io/domino-startscript/domdownload/

The script has many useful options and validates the downloaded software using the SHA256 provided in the portal or software.jwt.


Implementation details

The script uses JQ to parse JSON data and uses Curl to download software. Meta data is cached to reduce the round trip time when navigating the software data.
Also the access token is cached to avoid rotating the download refresh token on every request.
The first version of the script even comes with it's own performance tracing tool, which helped me to track down some Ubuntu local DNS resolver issues.


Have a look and provide feedback

If you are running Linux or MacOS in your environment, you should have a look! I am using it every day in many different scenarios.
For Windows I added GitBash support. But the better way would be to install WSL and run the script on Linux leveraging /mnt integration for Windows file systems.

This is the first version of the script. The script was on preview in the HCL Ambassador community and the Domino 14 EAP feedback forum.

I also added domdownload support into the HCL Community Container project. build.sh automatically detects it and if present, the software downloads are fully automated.

Example: ./domdownload -autoupdate

After selecting the software in a menu, information for the software package found is displayed and a curl based download is started.


--------------------------------------------------------------------------------
Selected software
--------------------------------------------------------------------------------


[1] HCL Domino Server 14.0 for Linux English - Early Access October 2023

--------------------------------------------------------------------------------
WebKit   :  HCL Domino Server 14.0 for Linux English - Early Access October 2023
Product  :  domino
Type     :  server
Platform :  Linux/64
Version  :  14.0
Name     :  Domino_14.0_Linux_English_EA3.tar
Size     :  1125591040
SHA256   :  8174c1a927571ba61b4c084c5863de6d7f48ed0d5ab9e293f7476fd41b9835c0
ID       :  LVZSBZ3rMMjQY4RF36hhb
--------------------------------------------------------------------------------

Downloading /mnt/storagebox/software/Domino_14.0_Linux_English_EA3.tar ...

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1073M  100 1073M    0     0   147M      0  0:00:07  0:00:07 --:--:--  112M

Download completed

[OK] Hash verified

/mnt/storagebox/software/Domino_14.0_Linux_English_EA3.tar


Comments
No Comments Found

Links

    Archives


    • [HCL Domino]
    • [Domino on Linux]
    • [Nash!Com]
    • [Daniel Nashed]