#!/bin/bash # Slackware build script for google-cloud-cli # Copyright 2025 Gonzalo A. Navarro, Buenos Aires, Argentina. # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # GNU/GPLv3 License cd $(dirname $0) ;CWD=$(pwd) PRGNAM=google-cloud-cli VERSION=${VERSION:-540.0.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} SRCNAM=${PRGNAM}-${VERSION}-linux-x86_64 TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} # Architecture detection if [ -z "$ARCH" ]; then case $(uname -m) in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$(uname -m) ;; esac fi # Print package name if requested if [ ! -z "$PRINT_PACKAGE_NAME" ]; then echo $PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE exit 0 fi set -e rm -rf $PKG mkdir -p $PKG $TMP $OUTPUT cd $TMP rm -rf $SRCNAM tar xvf $CWD/$SRCNAM.tar.gz cd google-cloud-sdk # Permissions chown -R root:root . find -L . -type d -exec chmod 755 {} \; find -L . -type f -exec chmod 644 {} \; # Selective copy PKG_OPT=$PKG/opt/google-cloud-cli mkdir -p $PKG_OPT/bin $PKG_OPT/lib $PKG_OPT/platform/bq $PKG_OPT/platform/gsutil cp -a bin/* $PKG_OPT/bin/ cp -a lib/* $PKG_OPT/lib/ cp -a platform/bq/* $PKG_OPT/platform/bq/ cp -a platform/gsutil/* $PKG_OPT/platform/gsutil/ chmod +x $PKG_OPT/bin/* rm -f $PKG_OPT/bin/gcloud-crc32c # Completions mkdir -p $PKG/usr/share/bash-completion/completions [ -f completion.bash.inc ] && cp -a completion.bash.inc $PKG/usr/share/bash-completion/completions/gcloud mkdir -p $PKG/usr/share/zsh/site-functions [ -f completion.zsh.inc ] && cp -a completion.zsh.inc $PKG/usr/share/zsh/site-functions/_gcloud # Symlinks mkdir -p $PKG/usr/bin ln -s /opt/google-cloud-cli/bin/gcloud $PKG/usr/bin/gcloud ln -s /opt/google-cloud-cli/bin/gsutil $PKG/usr/bin/gsutil ln -s /opt/google-cloud-cli/bin/bq $PKG/usr/bin/bq ln -s /opt/google-cloud-cli/bin/git-credential-gcloud.sh $PKG/usr/bin/git-credential-gcloud.sh ln -s /opt/google-cloud-cli/bin/docker-credential-gcloud $PKG/usr/bin/docker-credentials-gcloud # Profile mkdir -p $PKG/etc/profile.d cp $CWD/$PRGNAM.sh $PKG/etc/profile.d/$PRGNAM.sh cp $CWD/$PRGNAM.csh $PKG/etc/profile.d/$PRGNAM.csh chmod +x $PKG/etc/profile.d/$PRGNAM.sh chmod +x $PKG/etc/profile.d/$PRGNAM.csh # Docs mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION [ -f LICENSE ] && cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION [ -f $CWD/$PRGNAM.SlackBuild ] && cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild # Slack-desc mkdir -p $PKG/install [ -f $CWD/slack-desc ] && cat $CWD/slack-desc > $PKG/install/slack-desc # Build cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE