Cumulus MX Update Helper Script
Posted: Thu 31 Dec 2020 9:45 pm
I see the topic of updating to the latest version of CMX mentioned through the fora, and having allowed myself to get way behind at one point I'm determined to try staying current. To that end I've been working on a script to help me understand the differences between 2 versions of CMX, and look for any files that I've modified and that require special handling.
I've never shared anything through github, but I believe it is accessible at https://github.com/radilly/cmxaux/blob/master/walker.py
I've used it a couple times now and at this point it saves me time and allows for the style of update I prefer. I understand the recommendation in viewtopic.php?p=148477 - but I'm not sure that preserves any changes I've made or the data collected to date 1. I guess I also like to minimize the down time (from having worked on "live" systems in the course of my career).
This is a Python script, which is easy for Pi users. Though I installed Python on my Windows box some time ago, it is version 3 and runs the script properly in my testing. (I wrap it in a BAT file that has the path to Python.)
The default output is a text report (sample attached) which compares 3 directory trees. The help shown with -h:
refdir may seem like an odd thing, but it's required to figure out if any files have been changed in your installation - changes you likely want to preserve.
The way I use this is I run a report just to get a feel for the magnitude of the changes between builds. Then I use the --script flag to generate a bash script to copy (and remove) files into my install. The intent is that the generated script represents the minimum change to an existing install. I strongly recommend checking the generated script before running it and, of course, backing up your installation. I generate this script before stopping CMX and get it ready to run, look over the couple of changed files I have to understand what I have to do to bring them up to date, and make my backup. It's then pretty quick to halt CMX, run the script, and restart again. I was down for a minute ... save for the html file changes I need make.
Hopefully that is enough for anyone interested to try it out. This isn't intended to be a "turn-key" updater, but rather something to aid if you wish to do this particular style of update.
---
Edits:
1 "Data" is not an issue. AFAIK, the data files, including .ini files are generated, and not included in the distro. You do need to be mindful of anything you've changed though.
I've never shared anything through github, but I believe it is accessible at https://github.com/radilly/cmxaux/blob/master/walker.py
I've used it a couple times now and at this point it saves me time and allows for the style of update I prefer. I understand the recommendation in viewtopic.php?p=148477 - but I'm not sure that preserves any changes I've made or the data collected to date 1. I guess I also like to minimize the down time (from having worked on "live" systems in the course of my career).
This is a Python script, which is easy for Pi users. Though I installed Python on my Windows box some time ago, it is version 3 and runs the script properly in my testing. (I wrap it in a BAT file that has the path to Python.)
The default output is a text report (sample attached) which compares 3 directory trees. The help shown with -h:
Code: Select all
$ ~/cmxaux/walker.py -h
usage: walker.py [-h] [--script {dos,bash}] refdir newdir install
This assists in updating an existing Cumulus MX installation.
positional arguments:
refdir Path to the directory we will use as the reference
version; the installed version as-shipped.
newdir Path to the directory with the new version.
install Path to the installed directory which is to be updated
(from the version in refdir).
optional arguments:
-h, --help show this help message and exit
--script {dos,bash} Generate output in script format.The way I use this is I run a report just to get a feel for the magnitude of the changes between builds. Then I use the --script flag to generate a bash script to copy (and remove) files into my install. The intent is that the generated script represents the minimum change to an existing install. I strongly recommend checking the generated script before running it and, of course, backing up your installation. I generate this script before stopping CMX and get it ready to run, look over the couple of changed files I have to understand what I have to do to bring them up to date, and make my backup. It's then pretty quick to halt CMX, run the script, and restart again. I was down for a minute ... save for the html file changes I need make.
Hopefully that is enough for anyone interested to try it out. This isn't intended to be a "turn-key" updater, but rather something to aid if you wish to do this particular style of update.
---
Edits:
1 "Data" is not an issue. AFAIK, the data files, including .ini files are generated, and not included in the distro. You do need to be mindful of anything you've changed though.