mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-03 22:01:39 +00:00
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
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:
@@ -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
|
7.34.10
|
||||||
|
|
||||||
Fixed bug where `formatjson quotechar <Character>` on the command line did not override `redirect csv <FileName> multiprocess quotechar <Character>`.
|
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.
|
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
|
7.06.05
|
||||||
|
|
||||||
@@ -2136,7 +2143,7 @@ for `[R] 35) Meet API (supports readonly)` as it is a special case.
|
|||||||
|
|
||||||
7.00.39
|
7.00.39
|
||||||
|
|
||||||
Supported MacOS versions are now in the download filename.
|
Supported macOS versions are now in the download filename.
|
||||||
|
|
||||||
Minor code fixes.
|
Minor code fixes.
|
||||||
|
|
||||||
@@ -3939,11 +3946,11 @@ See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Drive-Files-Display#fil
|
|||||||
|
|
||||||
6.65.12
|
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
|
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.
|
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
|
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
|
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
|
as `fork` was unreliable when large numbers (>20) of threads were used; subprocesses would
|
||||||
hang and never complete.
|
hang and never complete.
|
||||||
|
|
||||||
@@ -6226,7 +6233,7 @@ then filters the list to only those in `<PeopleContactGroupItem>`; quota limits
|
|||||||
|
|
||||||
6.28.03
|
6.28.03
|
||||||
|
|
||||||
Build MacOS x86_64 and arm64 executables.
|
Build macOS x86_64 and arm64 executables.
|
||||||
|
|
||||||
6.28.02
|
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
|
6.26.00
|
||||||
|
|
||||||
Build MacOS universal version.
|
Build macOS universal version.
|
||||||
|
|
||||||
* Upgraded to OpenSSL 3.0.5 where possible.
|
* 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
|
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.
|
of the command is 0; program accordingly.
|
||||||
```
|
```
|
||||||
Linux/MacOS
|
Linux/macOS
|
||||||
teamDriveId=`gam user user@domain.com create teamdrive ... returnidonly`
|
teamDriveId=`gam user user@domain.com create teamdrive ... returnidonly`
|
||||||
Windows PowerShell
|
Windows PowerShell
|
||||||
$teamDriveId = & gam user user@domain.com create teamdrive ... returnidonly`
|
$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
|
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.
|
of the command is 0; program accordingly.
|
||||||
```
|
```
|
||||||
Linux/MacOS
|
Linux/macOS
|
||||||
fileId=`gam user user@domain.com create drivefile ... returnidonly`
|
fileId=`gam user user@domain.com create drivefile ... returnidonly`
|
||||||
Windows PowerShell
|
Windows PowerShell
|
||||||
$fileId = & gam user user@domain.com create drivefile ... returnidonly`
|
$fileId = & gam user user@domain.com create drivefile ... returnidonly`
|
||||||
@@ -15590,7 +15597,7 @@ gam print group-members [todrive [<ToDriveAttribute>]]
|
|||||||
|
|
||||||
4.55.44
|
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.
|
Recode pyinstaller .spec files.
|
||||||
|
|
||||||
4.55.43
|
4.55.43
|
||||||
@@ -15617,7 +15624,7 @@ Fixed bug that made some gam print commands throw an exception.
|
|||||||
|
|
||||||
4.55.40
|
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
|
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
|
4.42.00
|
||||||
|
|
||||||
Fixed problem where control-C was not recognized when multiple processes were running via gam batch/csv.
|
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.
|
thrown but Gam does terminate.
|
||||||
|
|
||||||
4.41.08
|
4.41.08
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ OPTIONS:
|
|||||||
-d Directory where gam folder will be installed. Default is \$HOME/bin/
|
-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".
|
-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".
|
-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.
|
-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.
|
-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.
|
-u Admin user email address to use with GAM. Default is to prompt.
|
||||||
@@ -247,7 +247,7 @@ case $gamos in
|
|||||||
archgrep="-arm64\|-aarch64"
|
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
|
exit
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -256,19 +256,19 @@ case $gamos in
|
|||||||
versionless_urls=$(echo -e "$gam_macos_urls" | \
|
versionless_urls=$(echo -e "$gam_macos_urls" | \
|
||||||
grep -e "-macos-")
|
grep -e "-macos-")
|
||||||
if [ "$versionless_urls" == "" ]; then
|
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" | \
|
gam_macos_vers=$(echo -e "$gam_macos_urls" | \
|
||||||
grep --only-matching -e '-macos[0-9\.]*' | \
|
grep --only-matching -e '-macos[0-9\.]*' | \
|
||||||
cut -c 7-10)
|
cut -c 7-10)
|
||||||
for gam_mac_ver in $gam_macos_vers; do
|
for gam_mac_ver in $gam_macos_vers; do
|
||||||
if version_gt $currentversion $gam_mac_ver; then
|
if version_gt $currentversion $gam_mac_ver; then
|
||||||
download_url=$(echo -e "$gam_macos_urls" | grep "$gam_mac_ver")
|
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
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if [ -z ${download_url+x} ]; then
|
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
|
exit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -283,13 +283,13 @@ case $gamos in
|
|||||||
esac
|
esac
|
||||||
download_url=$(echo -e "$download_urls" | grep -e $archgrep)
|
download_url=$(echo -e "$download_urls" | grep -e $archgrep)
|
||||||
if version_gt "$osversion" "$minimum_version"; then
|
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
|
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
|
exit
|
||||||
fi
|
fi
|
||||||
if [ -z ${download_url+x} ]; then
|
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
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -302,7 +302,7 @@ case $gamos in
|
|||||||
grep ".zip")
|
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
|
exit
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -368,18 +368,15 @@ if [ "$upgrade_only" = true ]; then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set config command
|
|
||||||
#config_cmd="config no_browser false"
|
|
||||||
|
|
||||||
while true; do
|
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
|
case $yn in
|
||||||
[Yy]*)
|
[Yy]*)
|
||||||
|
"$target_gam" config no_browser false save
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
[Nn]*)
|
[Nn]*)
|
||||||
# config_cmd="config no_browser true"
|
"$target_gam" config no_browser true save
|
||||||
touch "$target_folder/nobrowser.txt" > /dev/null 2>&1
|
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -397,7 +394,6 @@ while true; do
|
|||||||
if [ "$adminuser" == "" ]; then
|
if [ "$adminuser" == "" ]; then
|
||||||
read -p "Please enter your Google Workspace admin email address: " adminuser
|
read -p "Please enter your Google Workspace admin email address: " adminuser
|
||||||
fi
|
fi
|
||||||
# "$target_gam" $config_cmd create project $adminuser
|
|
||||||
"$target_gam" create project $adminuser
|
"$target_gam" create project $adminuser
|
||||||
rc=$?
|
rc=$?
|
||||||
if (( $rc == 0 )); then
|
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
|
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
|
case $yn in
|
||||||
[Yy]*)
|
[Yy]*)
|
||||||
# "$target_gam" $config_cmd oauth create $adminuser
|
|
||||||
"$target_gam" oauth create $adminuser
|
"$target_gam" oauth create $adminuser
|
||||||
rc=$?
|
rc=$?
|
||||||
if (( $rc == 0 )); then
|
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
|
read -p "Please enter the email address of a regular Google Workspace user: " regularuser
|
||||||
fi
|
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."
|
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
|
"$target_gam" user $regularuser check serviceaccount
|
||||||
rc=$?
|
rc=$?
|
||||||
if (( $rc == 0 )); then
|
if (( $rc == 0 )); then
|
||||||
@@ -475,7 +469,6 @@ while $admin_authorized; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo_green "Here's information about your new GAM installation:"
|
echo_green "Here's information about your new GAM installation:"
|
||||||
#"$target_gam" $config_cmd save version extended
|
|
||||||
"$target_gam" version extended
|
"$target_gam" version extended
|
||||||
rc=$?
|
rc=$?
|
||||||
if (( $rc != 0 )); then
|
if (( $rc != 0 )); then
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
__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)'
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||||
|
|
||||||
# pylint: disable=wrong-import-position
|
# pylint: disable=wrong-import-position
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
\deftab720
|
\deftab720
|
||||||
\pard\pardeftab720\sl276\slmult1\sa200\qc\partightenfactor0
|
\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
|
\pard\pardeftab720\sa200\qc\partightenfactor0
|
||||||
|
|
||||||
\f1\b \cf0 Licensed under the Apache License, Version 2.0 (the "License");\
|
\f1\b \cf0 Licensed under the Apache License, Version 2.0 (the "License");\
|
||||||
|
|||||||
Reference in New Issue
Block a user