BookStackApp / system-cli

A simple CLI to manage BookStack instances
MIT License
5 stars 0 forks source link

Feature request - Backup before update flag #13

Open slimninja opened 11 months ago

slimninja commented 11 months ago

Hi. First of all, great work on everything. I've been using Bookstack since about 2017 with very few issues :)

I currently run a script monthly via cron that:

  1. Check git repo to see if I'm behind (and if so)
  2. Backs up db/files
  3. Updates BookStack
  4. Sends me a notification of update/status

With system-cli, life is a little easier, and I can run something along the lines of this every month:

./BookStack/bookstack-system-cli backup backups/
./BookStack/bookstack-system-cli update

However, this means that regardless of whether there's a bookstack update available or not, my instance is backed up.

Ideally I would be able to run something like below, where If I provide a flag, e.g. --backup, bookstack would backup before it updates to the backup path provided (else default backup path)

./BookStack/bookstack-system-cli update --backup backups/

That way, this can be a defined as a standalone cron task

Additionally, I noticed that even if you are on the latest version of Bookstack and run update, you receive a "Your BookStack instance at [path/BookStack] has been updated!". It would be great if this returned a "Your BookStack instance is already on the latest version" instead.

ssddanbrown commented 11 months ago

Thanks for the suggestion @slimninja. Personally, I'm not too fond of this due to the added complexity of supporting the merging two commands, each with their own options. I really want to try to keep things simple in this CLI, with specific commands for specific jobs. I can understand the scenario/need though.

Maybe we can come at this from a different angle though, and look to implement a check-update command (or similar), that returns a status code depending on if there's an update or not. That way you'd be able to do something like:

./bookstack-system-cli check-update && ./bookstack-system-cli backup backups/ && ./bookstack-system-cli update
slimninja commented 11 months ago

Thanks for the suggestion @slimninja. Personally, I'm not too fond of this due to the added complexity of supporting the merging two commands, each with their own options. I really want to try to keep things simple in this CLI, with specific commands for specific jobs. I can understand the scenario/need though.

Maybe we can come at this from a different angle though, and look to implement a check-update command (or similar), that returns a status code depending on if there's an update or not. That way you'd be able to do something like:

./bookstack-system-cli check-update && ./bookstack-system-cli backup backups/ && ./bookstack-system-cli update

That's a great idea, and solves my initial problem as well. Reduces overlap as well