* Use a single GAM / Python process for all threads (needs testing, will sys.exit in a function cause issues?)
- Huge reduction in useless time spent starting Python per-thread.
* Bump default from 5 threads to 25.
* Introduce default_to_batch for some user commands where it makes sense.
- most show/print commands will default to batch off.
- most do / update commands will default to on.
* In gam print groups settings, get gs service outside of loop
* Do not get settings for special groups abuse and postmaster
* Do not set settings for special groups abuse and postmaster
* Simplify doCheckServiceAccount
* Further simplify doCheckServiceAccount
List of scopes is all we need
* Build all_scopes list outside of loop, sort once
* Leave use_scopes in buildGAPIServiceObject for future use
As in https://github.com/jay0lee/GAM/pull/313, factor in the user's
environment variables. On a new installation, the files will be in GAM
Path, but on an existing installation the environment variables may
have them located somewhere else.
* Code fixes, cleanup
Fix doCheckServiceAccount to pass correct api to buildGAPIServiceObject
pylint cleanup
Simplify passing login_hint to doRequestOAuth in main
Give error if invalid argument after gam <users> check
* Fix error
* Use try accept
The environment variables GAMUSERCONFIGDIR and CLIENTSECRETS are
factored in to GC_Values[GC_CLIENT_SECRETS_JSON]. On a new
installation, it will have the value
os.path.join(GM_Globals[GM_GAM_PATH], FN_CLIENT_SECRETS_JSON) but on an
existing installation the environment variables may have it located
somewhere else.
* Fix doGamVersion
doGamVersion is called by showUsage with checkForArgs=False to keep
doGamVersion from wandering through some other command’s arguments
* Update documentation
* Further doGamVersion cleanup
Allow simple and check, keep pylint happy
* gam version simple is script only option, not exposed to user