Updated gam-install.sh script for macOS/Linux #1883
Some checks failed
Push wiki / pushwiki (push) Has been cancelled
Build and test GAM / build (false, build, 1, Build Intel Ubuntu Jammy, ubuntu-22.04) (push) Has been cancelled
Build and test GAM / build (false, build, 10, Build x86_64 macOS 15, macos-15-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 11, Build x86_64 macOS 26, macos-26-intel) (push) Has been cancelled
Build and test GAM / build (false, build, 12, Build Arm MacOS 26, macos-26) (push) Has been cancelled
Build and test GAM / build (false, build, 13, Build Intel Windows, windows-2025-vs2026) (push) Has been cancelled
Build and test GAM / build (false, build, 14, Build Arm Windows, windows-11-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 2, Build Intel Ubuntu Noble, ubuntu-24.04) (push) Has been cancelled
Build and test GAM / build (false, build, 3, Build Arm Ubuntu Noble, ubuntu-24.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 4, Build Arm Ubuntu Jammy, ubuntu-22.04-arm) (push) Has been cancelled
Build and test GAM / build (false, build, 5, Build Intel StaticX Legacy, ubuntu-22.04, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 6, Build Arm StaticX Legacy, ubuntu-22.04-arm, yes) (push) Has been cancelled
Build and test GAM / build (false, build, 8, Build Arm MacOS 14, macos-14) (push) Has been cancelled
Build and test GAM / build (false, build, 9, Build Arm MacOS 15, macos-15) (push) Has been cancelled
Build and test GAM / build (false, test, 15, Test Python 3.10, ubuntu-24.04, 3.10) (push) Has been cancelled
Build and test GAM / build (false, test, 16, Test Python 3.11, ubuntu-24.04, 3.11) (push) Has been cancelled
Build and test GAM / build (false, test, 17, Test Python 3.12, ubuntu-24.04, 3.12) (push) Has been cancelled
Build and test GAM / build (false, test, 18, Test Python 3.15-dev, ubuntu-24.04, 3.15-dev) (push) Has been cancelled
Build and test GAM / build (true, test, 19, Test Python 3.14 freethread, ubuntu-24.04, 3.14) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Check for Google Root CA Updates / check-certs (push) Has been cancelled
Build and test GAM / publish (push) Has been cancelled

This commit is contained in:
Ross Scroggs
2026-02-27 18:18:19 -08:00
parent 1364991e5d
commit caeab48dda
4 changed files with 33 additions and 33 deletions

View File

@@ -1,3 +1,10 @@
7.34.11
Updated gam-install.sh script for macOS/Linux to properly config GAM when the answer to the following question is No.
```
Can you run a full browser on this machine? (usually Y for macOS, N for Linux if you SSH into this machine)
```
7.34.10
Fixed bug where `formatjson quotechar <Character>` on the command line did not override `redirect csv <FileName> multiprocess quotechar <Character>`.
@@ -1527,7 +1534,7 @@ Re-run the command specify a new service account name with: saname <ServiceAccou
Native support for Windows 11 Arm-based devices.
Renamed some MacOS and Linux binary installer files to align on terminology. Everything is "arm64" now, no "aarch64".
Renamed some macOS and Linux binary installer files to align on terminology. Everything is "arm64" now, no "aarch64".
7.06.05
@@ -2136,7 +2143,7 @@ for `[R] 35) Meet API (supports readonly)` as it is a special case.
7.00.39
Supported MacOS versions are now in the download filename.
Supported macOS versions are now in the download filename.
Minor code fixes.
@@ -3939,11 +3946,11 @@ See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Drive-Files-Display#fil
6.65.12
Additional updates on MacOS when a `gam csv` command is interrupted with a contol-C.
Additional updates on macOS when a `gam csv` command is interrupted with a contol-C.
6.65.11
Updated multiprocessing to handle the following error that occurs on MacOS when a `gam csv` command
Updated multiprocessing to handle the following error that occurs on macOS when a `gam csv` command
is interrupted with a contol-C.
```
multiprocessing/resource_tracker.py:224: UserWarning: resource_tracker: There appear to be N leaked semaphore objects to clean up at shutdown
@@ -6104,7 +6111,7 @@ Improved code for `gam [<UserTypeEntity>] create teamdrive <Name> ou <OrgUnitIte
6.29.04
Updated multiprocessing on MacOS to use `spawn` instead of `fork` when starting subprocesses
Updated multiprocessing on macOS to use `spawn` instead of `fork` when starting subprocesses
as `fork` was unreliable when large numbers (>20) of threads were used; subprocesses would
hang and never complete.
@@ -6226,7 +6233,7 @@ then filters the list to only those in `<PeopleContactGroupItem>`; quota limits
6.28.03
Build MacOS x86_64 and arm64 executables.
Build macOS x86_64 and arm64 executables.
6.28.02
@@ -6573,7 +6580,7 @@ Added command that allows checking if a user is a member of specific groups and
6.26.00
Build MacOS universal version.
Build macOS universal version.
* Upgraded to OpenSSL 3.0.5 where possible.
@@ -11415,7 +11422,7 @@ ID of the created Team Drive as output. This will be useful in scripts that crea
want to perform subsequent GAM command on the Team Drive. This ID will only be valid when the return code
of the command is 0; program accordingly.
```
Linux/MacOS
Linux/macOS
teamDriveId=`gam user user@domain.com create teamdrive ... returnidonly`
Windows PowerShell
$teamDriveId = & gam user user@domain.com create teamdrive ... returnidonly`
@@ -11507,7 +11514,7 @@ file ID of the created file as output. This will be useful in scripts that creat
want to perform subsequent GAM command on the file. This file ID will only be valid when the return code
of the command is 0; program accordingly.
```
Linux/MacOS
Linux/macOS
fileId=`gam user user@domain.com create drivefile ... returnidonly`
Windows PowerShell
$fileId = & gam user user@domain.com create drivefile ... returnidonly`
@@ -15590,7 +15597,7 @@ gam print group-members [todrive [<ToDriveAttribute>]]
4.55.44
Improve MacOS version of GAM's use of OpenSSL 1.0.2n.
Improve macOS version of GAM's use of OpenSSL 1.0.2n.
Recode pyinstaller .spec files.
4.55.43
@@ -15617,7 +15624,7 @@ Fixed bug that made some gam print commands throw an exception.
4.55.40
Update MacOS version of GAM to use OpenSSL 1.0.2n.
Update macOS version of GAM to use OpenSSL 1.0.2n.
4.55.39
@@ -18443,7 +18450,7 @@ Changed gam info user formatjson to show licenses in SKU ID (SKU Display Name) f
4.42.00
Fixed problem where control-C was not recognized when multiple processes were running via gam batch/csv.
Gam terminates cleanly on Linux/MacOS when you hit control-C in this situation; on Windows exceptions are
Gam terminates cleanly on Linux/macOS when you hit control-C in this situation; on Windows exceptions are
thrown but Gam does terminate.
4.41.08

View File

@@ -10,7 +10,7 @@ OPTIONS:
-d Directory where gam folder will be installed. Default is \$HOME/bin/
-a Architecture to install (x86_64, arm64). Default is to detect your arch with "uname -m".
-o OS we are running (linux, macos). Default is to detect your OS with "uname -s".
-b OS version. Default is to detect on MacOS and Linux.
-b OS version. Default is to detect on macOS and Linux.
-l Just upgrade GAM to latest version. Skips project creation and auth.
-p Profile update (true, false). Should script add gam command to environment. Default is true.
-u Admin user email address to use with GAM. Default is to prompt.
@@ -247,7 +247,7 @@ case $gamos in
archgrep="-arm64\|-aarch64"
;;
*)
echo_red "ERROR: this installer currently only supports x86_64 and arm64 MacOS. Looks like you're running on ${gamarch}. Exiting."
echo_red "ERROR: this installer currently only supports x86_64 and arm64 macOS. Looks like you're running on ${gamarch}. Exiting."
exit
;;
esac
@@ -256,19 +256,19 @@ case $gamos in
versionless_urls=$(echo -e "$gam_macos_urls" | \
grep -e "-macos-")
if [ "$versionless_urls" == "" ]; then
# versions after 7.00.38 include MacOS version info
# versions after 7.00.38 include macOS version info
gam_macos_vers=$(echo -e "$gam_macos_urls" | \
grep --only-matching -e '-macos[0-9\.]*' | \
cut -c 7-10)
for gam_mac_ver in $gam_macos_vers; do
if version_gt $currentversion $gam_mac_ver; then
download_url=$(echo -e "$gam_macos_urls" | grep "$gam_mac_ver")
echo_green "You are running MacOS ${currentversion} Using GAM compiled against ${gam_mac_ver}"
echo_green "You are running macOS ${currentversion} Using GAM compiled against ${gam_mac_ver}"
break
fi
done
if [ -z ${download_url+x} ]; then
echo_red "Sorry, you are running MacOS ${osversion} but GAM on ${gamarch} requires MacOS ${gam_mac_ver} or newer. Exiting."
echo_red "Sorry, you are running macOS ${osversion} but GAM on ${gamarch} requires macOS ${gam_mac_ver} or newer. Exiting."
exit
fi
else
@@ -283,13 +283,13 @@ case $gamos in
esac
download_url=$(echo -e "$download_urls" | grep -e $archgrep)
if version_gt "$osversion" "$minimum_version"; then
echo_green "You are running MacOS ${osversion}, good. Downloading GAM from ${download_url}."
echo_green "You are running macOS ${osversion}, good. Downloading GAM from ${download_url}."
else
echo_red "Sorry, you are running MacOS ${osversion} but GAM on ${gamarch} requires MacOS ${minimum_version}. Exiting."
echo_red "Sorry, you are running macOS ${osversion} but GAM on ${gamarch} requires macOS ${minimum_version}. Exiting."
exit
fi
if [ -z ${download_url+x} ]; then
echo_red "Sorry, you are running MacOS ${currentversion} but GAM on ${gamarch} requires MacOS ${minimum_version}. Exiting."
echo_red "Sorry, you are running macOS ${currentversion} but GAM on ${gamarch} requires macOS ${minimum_version}. Exiting."
exit
fi
fi
@@ -302,7 +302,7 @@ case $gamos in
grep ".zip")
;;
*)
echo_red "Sorry, this installer currently only supports Linux and MacOS. Looks like you're running on ${gamos}. Exiting."
echo_red "Sorry, this installer currently only supports Linux and macOS. Looks like you're running on ${gamos}. Exiting."
exit
;;
esac
@@ -368,18 +368,15 @@ if [ "$upgrade_only" = true ]; then
exit
fi
# Set config command
#config_cmd="config no_browser false"
while true; do
read -p "Can you run a full browser on this machine? (usually Y for MacOS, N for Linux if you SSH into this machine) " yn
read -p "Can you run a full browser on this machine? (usually Y for macOS, N for Linux if you SSH into this machine) " yn
case $yn in
[Yy]*)
"$target_gam" config no_browser false save
break
;;
[Nn]*)
# config_cmd="config no_browser true"
touch "$target_folder/nobrowser.txt" > /dev/null 2>&1
"$target_gam" config no_browser true save
break
;;
*)
@@ -397,7 +394,6 @@ while true; do
if [ "$adminuser" == "" ]; then
read -p "Please enter your Google Workspace admin email address: " adminuser
fi
# "$target_gam" $config_cmd create project $adminuser
"$target_gam" create project $adminuser
rc=$?
if (( $rc == 0 )); then
@@ -423,7 +419,6 @@ while $project_created; do
read -p "Are you ready to authorize GAM to perform Google Workspace management operations as your admin account? (yes or no) " yn
case $yn in
[Yy]*)
# "$target_gam" $config_cmd oauth create $adminuser
"$target_gam" oauth create $adminuser
rc=$?
if (( $rc == 0 )); then
@@ -453,7 +448,6 @@ while $admin_authorized; do
read -p "Please enter the email address of a regular Google Workspace user: " regularuser
fi
echo_yellow "Great! Checking service account scopes.This will fail the first time. Follow the steps to authorize and retry. It can take a few minutes for scopes to PASS after they've been authorized in the admin console."
# "$target_gam" $config_cmd user $regularuser check serviceaccount
"$target_gam" user $regularuser check serviceaccount
rc=$?
if (( $rc == 0 )); then
@@ -475,7 +469,6 @@ while $admin_authorized; do
done
echo_green "Here's information about your new GAM installation:"
#"$target_gam" $config_cmd save version extended
"$target_gam" version extended
rc=$?
if (( $rc != 0 )); then

View File

@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
"""
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
__version__ = '7.34.10'
__version__ = '7.34.11'
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
# pylint: disable=wrong-import-position

View File

@@ -6,7 +6,7 @@
\deftab720
\pard\pardeftab720\sl276\slmult1\sa200\qc\partightenfactor0
\f0\fs22 \cf0 Copyright 2025 Jay Lee\
\f0\fs22 \cf0 Copyright 2026 Jay Lee\
\pard\pardeftab720\sa200\qc\partightenfactor0
\f1\b \cf0 Licensed under the Apache License, Version 2.0 (the "License");\