As I redevelop this toolkit, I’ve come to a point where I have a proof of concept working.
With the POC, I can grab programs from the ‘net, extract them into appropriate folders, and keep a cached copy of the programs, so re-downloading everything isn’t necessary for files that haven’t been updated.
Now I’m starting to think that it may make more sense to approach this via PowerShell.
PowerShell offers the ability to download programs just as well – or at least bootstrap the toolkit’s basic bits — 7zip and aria2. Since we want to be as portable as possible, there are solutions out there, but they require the end-user to change their ExecutionPolicy. This alone is a slight barrier to entry. I’m unsure if I want to progress with this barrier in place or not. It may also send up red flags to users that my project requires them to lower their security for a moment, just to grab a few utilities.
Personally, I’d rather not go this route, even though it makes it so BootZilla can be released as a single script – something that would be ideal in the long run. No need to package any external utilities with the script, and easily package the program urls within the script itself. This would also (potentially) allow something like appveyor to be used to automate the build, and provide a single ‘distro’ to be built and released daily.
At this point – I’m probably going to write the necessary bits to implement this approach, at least to see if it provides what I need. Perhaps the barrier to entry is necessary anyway – the tools I’m including aren’t your standard run-of-the-mill utilities – they require a sysadmin who knows what they’re doing, in order to utilize properly.
There’s some fear still associated with altering a user’s ExecutionPolicy, even temporarily. I don’t anticipate getting things signed cryptographically, which may also be a thorn in my side.
Perhaps I’m being too anal about my own security. I don’t know. This point in time is important, as if I go one way, things may be easier in the long run, albeit with the security implications aforementioned. If I go the other way, I’ll be stuck in the past, and have to distribute a slightly larger bootstrap, taped together with batch scripts from a bygone era.
Batch scripting isn’t dead – but it has certainly evolved. PowerShell offers a lot of new functionality, but requires you to lower your shields for a moment in order to be useful.
I’m going to write the .psh, and hope for the best.