--dry-run flag for whmapi1 calls and hooks
When the Shell API is enabled in WHM we developers get the warning:
WARNING: This feature operates on the live system.
Am I missing something? Are there no options for --dry-run to see what would happen without affecting the system?
Developing for cPanel I feel like a surgeon trying to do open heart surgery while on a roller coaster.
Testing scripts on a production server with 100s of users is indeed quite the rush each time you hit "Enter." I know that I can get a developer's license and test these on there, but sometimes that is not enough.
It has happened a few times that by the time I'm finished on my development server, I have issues on my production server because that environment has changed so much (maybe a package has changed, feature no longer available, etc).
It's also been the case that when I finish developing, the underlying production server environment is different enough to cause problems. Here is an actual example in the wild with code written by a cPanel staff member:
DOMAIN=$(python -c "import sys, json; print json.load(open('$TMPFILE'))['data']['domain']")
CUSTOMEREMAIL=$(python -c "import sys, json; print json.load(open('$TMPFILE'))['data']['contactemail']")
That above code worked fine in his environment and on my older dev server as well. It drove me insane for the 5 min this wasn't working in the live environment, until I figured out I needed to use python3 instead of python.
With cPanel, I'm finding that too great a difference can exist between a development environment and a production. We need to be able to run our code on the production server, but we also need the assurance that we can do so safely, and that is where --dry-run comes in.
This will allow us to fix the nuances that are going to allow it to run successfully in its production environment.