From 4fb2e4698c23a82664c3427ef103813dffda5847 Mon Sep 17 00:00:00 2001 From: "kebler.net" Date: Tue, 19 Oct 2021 11:01:32 -0700 Subject: [PATCH 1/4] vscode script supports vscodium and uses USER as subdirectory gnome terminal alias to use from vscdoe --- all/alias/term | 1 + all/modules/vscode.sh | 32 ++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 14 deletions(-) create mode 100755 all/alias/term diff --git a/all/alias/term b/all/alias/term new file mode 100755 index 0000000..0c642ef --- /dev/null +++ b/all/alias/term @@ -0,0 +1 @@ +alias gterm='GNOME_TERMINAL_SCREEN='\'''\'' gnome-terminal' \ No newline at end of file diff --git a/all/modules/vscode.sh b/all/modules/vscode.sh index c5095b9..53597f5 100755 --- a/all/modules/vscode.sh +++ b/all/modules/vscode.sh @@ -1,20 +1,24 @@ #!/bin/bash -command -v code >/dev/null 2>&1 || exit - +VSCODE_BIN=$(command -v code) +VSCODE_BIN=${VSCODE_BIN:-$(command -v codium)} +[[ $VSCODE_BIN ]] || { + echo "no vscode binary on machine" + exit +} # set default home here -# can pass -vscode () { -#local home=$HOME -local home=/opt/vscode -home=${VSCODE_HOME:-$home} -[[ $1 == "-h" ]] && home=$2 && shift 2 -mkdir -p $home -[[ $? -ne 0 ]] && echo "unable to set vscode home at $home, aborting" && return 1 -exts=${home}/extensions -user=${home}/user -exe=$(command -v code) -$exe --user-data-dir=$user --extensions-dir=$exts "$@" +# can pass +vscode() { + #local home=$HOME + local home=/opt/vscode + home=${VSCODE_HOME:-$home} + [[ $1 == "-h" ]] && home=$2 && shift 2 + mkdir -p ${home}/${USER} + [[ $? -ne 0 ]] && echo "unable to set vscode home at $home/$USER, aborting" && return 1 + exts=${home}/${USER}/extensions + user=${home}/${USER}/data + echo $VSCODE_BIN --user-data-dir=$user --extensions-dir=$exts "$@" + $VSCODE_BIN --user-data-dir=$user --extensions-dir=$exts "$@" } # # if script was executed then call the function From 49920c442afacd3ab90b86c4a656270b7b40a3b7 Mon Sep 17 00:00:00 2001 From: "kebler.net" Date: Sat, 23 Oct 2021 23:40:37 -0700 Subject: [PATCH 2/4] feat: supports chromium binary via faltpak feat: will propery handle instance, url and additional options --- all/modules/chromium/chromium.sh | 72 +++++++++++++++++++------------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/all/modules/chromium/chromium.sh b/all/modules/chromium/chromium.sh index ea25a70..0cdd614 100755 --- a/all/modules/chromium/chromium.sh +++ b/all/modules/chromium/chromium.sh @@ -1,36 +1,52 @@ #!/bin/bash -# user to start MUST be first in arguments +# user to start MUST be first in arguments # if not supplied then will use default -chromium_ () { -local DEFAULT=/opt/chromium -# local DEFAULT="$HOME/.local/share/chromium" -local exe="/usr/bin/chromium" -[[ ! $exe ]] && echo chromium not installed set && return 1 -user=${CHROMIUM_USER} -[[ $1 && ( ! $1 == -* ) ]] && user=$1 && shift -[[ $1 && ( ! $1 == -* ) ]] && url=$1 && shift -user=${user:-$USER} -if [[ $user == "$USER" ]]; then - unset CHROME_CONFIG_HOME - echo starting chromium for $USER in default directory within users home - echo $exe "$@" - $exe "$@" - else - [[ $user == "incognito" ]] && set -- "$@" "-incognito" - dir=${CHROMIUM_HOME:-$DEFAULT} - echo "$exe $@ --user-data-dir=$dir/$user" - "$exe" "$@" --user-data-dir="$dir"/"$user" $url +chromium_() { + local DEFAULT=/opt/chromium + # local DEFAULT="$HOME/.local/share/chromium" + local exe="/usr/bin/chromium" + if [[ ! -f $exe ]]; then + echo deb chromium not installed, checking for flatpak version + flatpak=$(flatpak info com.github.Eloston.UngoogledChromium | grep error:) + if [[ $flatpak ]]; then + echo no flatpak version either - exiting && return 1 + else + flatpak=true + exe="/usr/bin/flatpak run --branch=stable --arch=x86_64 --filesystem= --command=/app/bin/chromium --file-forwarding com.github.Eloston.UngoogledChromium @@u" + fi fi + + local instance=${CHROMIUM_INSTANCE} + [[ $1 && (! $1 == -*) ]] && instance=$1 && shift + [[ $1 && (! $1 == -*) ]] && url=$1 && shift + if [[ $instance =~ http[s]?:\/\/ ]]; then + url=$instance + instance="" + if [[ $url =~ ^-+ ]]; then + url="" + set -- "$@" $url + url="" + fi + fi + + local dir + if [[ ! $instance ]]; then + unset CHROME_CONFIG_HOME + $HOME/.config/chromium + echo starting chromium for $USER in + dir=$HOME/.config/chromium + exe="${exe//$dir}" + # echo $exe "$@" $([[ $flatpak ]] && echo " @@") + # $exe "$@" + else + [[ $instance == "incognito" ]] && set -- "$@" "-incognito" + dir=${CHROMIUM_HOME:-$DEFAULT}/$instance + exe="${exe//$dir}" + fi + $exe $@ --user-data-dir=$dir $url $([[ $flatpak ]] && echo "@@") + } # # if script was executed then call the function (return 0 2>/dev/null) || chromium_ $@ - - - - - - - - From d5d76efa8d20735af2fb9daae4bdcc96ca323ec3 Mon Sep 17 00:00:00 2001 From: "kebler.net" Date: Thu, 28 Oct 2021 13:14:41 -0700 Subject: [PATCH 3/4] add pipr alias, better file format --- all/lang/python | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/all/lang/python b/all/lang/python index 4b06a36..81c0a4a 100644 --- a/all/lang/python +++ b/all/lang/python @@ -1,11 +1,11 @@ #!/bin/bash -use_pyenv () { +use_pyenv() { if command -v pyenv >/dev/null 2>&1; then - export PYENV_ROOT="/opt/python/pyenv" - export PYENV_VERSION=${PYENV_VERSION:-3.8.7} - eval "$(pyenv init -)" - eval "$(pyenv virtualenv-init -)" + export PYENV_ROOT="/opt/python/pyenv" + export PYENV_VERSION=${PYENV_VERSION:-3.8.7} + eval "$(pyenv init -)" + eval "$(pyenv virtualenv-init -)" fi } @@ -21,28 +21,28 @@ alias pipu="pipx upgrade" alias pipua="pipx upgrade-all" alias pipupip="pipx upgrade pipx" alias pipi="pipx install" +alias pipr="pipx uninstall" alias pipl="pipx list" alias piplv="pipx list --verbose" path_append "/opt/python/bin" if command -v pipx >/dev/null 2>&1; then -path_append "/opt/python/apps/bin" -export PIPX_HOME=/opt/python/apps -export PIPX_BIN_DIR=$PIPX_HOME/bin + path_append "/opt/python/apps/bin" + export PIPX_HOME=/opt/python/apps + export PIPX_BIN_DIR=$PIPX_HOME/bin fi [[ $USE_PYENV ]] && use_pyenv -spipua () { -module_load confirm -echo upgrading all base python packages - requires sudo access -# sudo -H python3.8 -m pip list --outdated -local List -local Ver=${1:-3.8} -List="$(sudo -H python$Ver -m pip list -o --format columns)" -echo "$List" -confirm "ATTENTION: upgrade all these packages at once??" || return 0 -echo "$List" | cut -d' ' -f1 | xargs -n1 sudo -H python$Ver -m pip install -U +spipua() { + module_load confirm + echo upgrading all base python packages - requires sudo access + # sudo -H python3.8 -m pip list --outdated + local List + local Ver=${1:-3.8} + List="$(sudo -H python$Ver -m pip list -o --format columns)" + echo "$List" + confirm "ATTENTION: upgrade all these packages at once??" || return 0 + echo "$List" | cut -d' ' -f1 | xargs -n1 sudo -H python$Ver -m pip install -U } - From ff9c1786113174fcf6fc665673167995fdb45fb5 Mon Sep 17 00:00:00 2001 From: "kebler.net" Date: Tue, 2 Nov 2021 07:01:28 -0700 Subject: [PATCH 4/4] add -g flag for google-chrome to chromium script refactor hugo install to use lastversion --- all/modules/chromium/chromium.sh | 7 +- all/modules/install/hugo-install.func | 141 +++++++++++++------------- 2 files changed, 78 insertions(+), 70 deletions(-) diff --git a/all/modules/chromium/chromium.sh b/all/modules/chromium/chromium.sh index 0cdd614..3421f18 100755 --- a/all/modules/chromium/chromium.sh +++ b/all/modules/chromium/chromium.sh @@ -6,8 +6,11 @@ chromium_() { local DEFAULT=/opt/chromium # local DEFAULT="$HOME/.local/share/chromium" local exe="/usr/bin/chromium" + + [[ $1 == -g ]] && exe=$(command -v google-chrome) && shift + echo exe $exe if [[ ! -f $exe ]]; then - echo deb chromium not installed, checking for flatpak version + echo chromium/chrome not installed, checking for flatpak version flatpak=$(flatpak info com.github.Eloston.UngoogledChromium | grep error:) if [[ $flatpak ]]; then echo no flatpak version either - exiting && return 1 @@ -44,6 +47,8 @@ chromium_() { dir=${CHROMIUM_HOME:-$DEFAULT}/$instance exe="${exe//$dir}" fi + mkdir -p $dir + echo $exe $@ --user-data-dir=$dir $url $([[ $flatpak ]] && echo "@@") $exe $@ --user-data-dir=$dir $url $([[ $flatpak ]] && echo "@@") } diff --git a/all/modules/install/hugo-install.func b/all/modules/install/hugo-install.func index 6ffaa2e..958ef61 100755 --- a/all/modules/install/hugo-install.func +++ b/all/modules/install/hugo-install.func @@ -1,113 +1,116 @@ #!/bin/bash -hugo_install () { +hugo_install() { # inspried from this forum post https://discourse.gohugo.io/t/script-to-install-latest-hugo-release-on-macos-and-ubuntu/14774/10 # if you have run into github api anonymous access limits which happens during debugging/dev then add user and token here or sourced from a separate file # . ~/githubapitoken #GITHUB_USER="" #GITHUB_TOKEN="" - + if [ "$GITHUB_TOKEN" != "" ]; then echo using access token with script echo $GITHUB_USER $GITHUB_TOKEN fi - + EXTENDED=false FORCE=false EFILE="" - - + # options # e - download and install the extended version # c - use 'hugoe' as the install command for extended version otherwise 'hugo' will launch extended version # f - force download/overwrite of same version - + declare OPTION declare OPTARG declare OPTIND - + while getopts 'ecf' OPTION; do case "$OPTION" in - e) - echo "installing extended hugo" - EXTENDED=true + e) + echo "installing extended hugo" + EXTENDED=true ;; - c) - if [ $EXTENDED = true ]; then - EFILE="e" - echo using hugoe for extended command - fi + c) + if [ $EXTENDED = true ]; then + EFILE="e" + echo using hugoe for extended command + fi ;; - f) - echo "FORCING download/overwrite" - FORCE=true + f) + echo "FORCING download/overwrite" + FORCE=true ;; esac done - - shift $(( OPTIND - 1 )) - + + shift $((OPTIND - 1)) + DEFAULT_BIN_DIR="/usr/local/bin" # Single optional argument is directory in which to install hugo BIN_DIR=${1:-"$DEFAULT_BIN_DIR"} - + BIN_PATH="$(which hugo$EFILE)" declare -A ARCHES - ARCHES=( ["arm64"]="ARM64" ["aarch64"]="ARM64" ["x86_64"]="64bit" ["arm32"]="ARM" ["armhf"]="ARM" ) + ARCHES=(["arm64"]="ARM64" ["aarch64"]="ARM64" ["x86_64"]="64bit" ["arm32"]="ARM" ["armhf"]="ARM") ARCH=$(arch) - + if [ -z "${ARCHES[$ARCH]}" ]; then - echo Your machine kernel architecture $ARCH is not supported by this script, aborting + echo Your machine kernel architecture $ARCH is not supported by this script, aborting exit 1 fi - - + INSTALLED="$(hugo$EFILE version 2>/dev/null | cut -d'v' -f2 | cut -c 1-6)" CUR_VERSION=${INSTALLED:-"None"} - echo $(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep tag_name) - NEW_VERSION="$(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ - | grep tag_name \ - | cut -d'v' -f2 | cut -c 1-6)" - - echo "Hugo `[ $EXTENDED == true ] && echo "Extended"`: Current Version : $CUR_VERSION => New Version: $NEW_VERSION" - - if [ -z "$NEW_VERSION" ]; then - echo Unable to retrieve new version number - Likely you have reached github anonymous limit - echo set environment variable `$GITHUB_USER` and `$GITHUB_TOKEN` and try again - exit 1 - fi - - [[ $NEW_VERSION = $CUR_VERSION ]] && [[ $FORCE = false ]] && echo Latest version already installed at $BIN_PATH && return 0 - - pushd /tmp/ > /dev/null - - URL=$(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ - | grep "browser_download_url.*hugo.*._Linux-${ARCHES[$ARCH]}\.tar\.gz" \ - | \ - if [ $EXTENDED = true ]; then - grep "_extended" - else - grep -v "_extended" - fi \ - | cut -d ":" -f 2,3 \ - | tr -d \" \ + # echo $(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep tag_name) + # NEW_VERSION="$(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ + # | grep tag_name \ + # | cut -d'v' -f2 | cut -c 1-6)" + + NEW_VERSION=$(lastversion hugo) + + echo "Hugo $([ $EXTENDED == true ] && echo "Extended"): Current Version : $CUR_VERSION => New Version: $NEW_VERSION" + + # if [ -z "$NEW_VERSION" ]; then + # echo Unable to retrieve new version number - Likely you have reached github anonymous limit + # echo set environment variable $($GITHUB_USER) and $($GITHUB_TOKEN) and try again + # exit 1 + # fi + + [[ $NEW_VERSION = $CUR_VERSION ]] && [[ $FORCE = false ]] && echo Latest version already installed at $BIN_PATH && return 0 + + pushd /tmp/ >/dev/null + + # curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/gohug#oio/hugo/releases/latest | + # grep "browser_download_url.*hugo.*._Linux-${ARCHES[$ARCH]}\.tar\.gz" | + + URL=$( + lastversion hugo --format assets --filter Linux-${ARCHES[$ARCH]}\.tar\.gz | + if [ $EXTENDED = true ]; then + grep "_extended" + else + grep -v "_extended" + fi + # | + # cut -d ":" -f 2,3 | + # tr -d \" ) - + echo $URL - - echo "Installing version $NEW_VERSION `[ $EXTENDED == true ] && echo "Extended"` " + + echo "Installing version $NEW_VERSION $([ $EXTENDED == true ] && echo "Extended") " echo "This machine's architecture is $ARCH" echo "Downloading Tarball $URL" - + wget --user=-u $GITHUB_USER --password=$GITHUB_TOKEN -q $URL - + TARBALL=$(basename $URL) # TARBALL="$(find . -name "*Linux-${ARCHES[$ARCH]}.tar.gz" 2>/dev/null)" echo Expanding Tarball, $TARBALL tar -xzf $TARBALL hugo - + chmod +x hugo - + if [ -w $BIN_DIR ]; then echo "Installing hugo to $BIN_DIR" mv hugo -f $BIN_DIR/hugo$EFILE @@ -115,15 +118,15 @@ hugo_install () { echo "installing hugo to $BIN_DIR (sudo)" sudo mv -f hugo $BIN_DIR/hugo$EFILE fi - + rm $TARBALL - - popd > /dev/null - - echo Installing hugo `[ $EXTENDED == true ] && echo "extended"` as hugo$EFILE - + + popd >/dev/null + + echo Installing hugo $([ $EXTENDED == true ] && echo "extended") as hugo$EFILE + BIN_PATH="$(which hugo$EFILE)" - + if [ -z "$BIN_PATH" ]; then printf "WARNING: Installed Hugo Binary in $BIN_DIR is not in your environment path\nPATH=$PATH\n" else @@ -135,5 +138,5 @@ hugo_install () { printf "New Hugo binary version at $BIN_PATH is\n $($BIN_PATH version)\n" fi fi - + }