-
Notifications
You must be signed in to change notification settings - Fork 929
Description
Currently, the manifest file is merely a list of packages for chocolatey to install. However, it could be used to fully control what is installed on a machine.
For instance, suppose I have a bunch of machines with packages A1.0, B2.2, and C3.0. I would like to batch alter my machines by:
- Upgrading A to 1.2,
- Uninstalling B completely because I don't need it anymore, and
- Rolling C back to 2.8
Right now, my only option for the uninstall would be a custom script, but the upgrade and (I believe) rollback can be handled by choco.
I would like to send just a manifest file that instructs choco to perform all three of these actions.
I like the manifest file format, so I don't think that should be modified. (Especially since it's basically Nuget's packages.config.)
Instead of modifying the manifest, the feature could be as simple as adding an install switch like -image
or -full
that works with manifest files to indicate that the manifest contains the desired state of all packages installed on the machine. Choco would then uninstall any packages not listed.
packages.config:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="a" version="1.2.0"/>
<package id="c" version="2.8.0"/>
</packages>
command line:
choco install "packages.config" -image