app.Before receives a cli.Context but without flags parsed. There is no
point calling ctx.Bool() or ctx.IsSet() at that stage.
However, flags are parsed in commands, so minio initialization and
setting global variables (globalJSON, globalQuiet, etc..) can be moved
to the Before function of all commands.
Avoid setting command.Before for non leaf commands, otherwise Before
function will be called multiples times until it reaches the leaf
command.
This commit adds a new global context, monitors os signals
and cancels the global context in such cases to exit
on going process gracefully.
It will also update minio-go and adapts the code with
the new context changes in the admin API.
This change is in preparation to add user-groups support to MinIO
server.
- Adds add, remove, enable/disable, list and info sub-commands for the
group command