diff --git a/bitwarden.sh b/bitwarden.sh index a1b99ab..9ba7c17 100644 --- a/bitwarden.sh +++ b/bitwarden.sh @@ -5,7 +5,7 @@ alias bw="sudo -u ${USERNAME} bw" bitwarden_is_authenticated() { status=$(bw status 2>/dev/null |jq -r ".status" 2>/dev/null) if [ -z "${status}" ]; then - false + return false else [[ ! ${status} == "unauthenticated" ]] fi @@ -13,7 +13,7 @@ bitwarden_is_authenticated() { bitwarden_is_locked() { status=$(bw status 2>/dev/null |jq -r ".status" 2>/dev/null) if [ -z "${status}" ]; then - true + return true else [[ ${status} == "locked" ]] || ! bitwarden_is_authenticated fi diff --git a/distribution/ubuntu/install.sh b/distribution/ubuntu/install.sh index 512977f..2c2b0e4 100644 --- a/distribution/ubuntu/install.sh +++ b/distribution/ubuntu/install.sh @@ -113,7 +113,7 @@ install_kubectl() { install_ligconsolata() { curl -L -O https://github.com/googlefonts/Inconsolata/archive/refs/tags/v3.000.zip && unzip v3.000.zip \ - && cp Inconsolata-3.000/fonts/otf/*.otf "/usr/local/share/fonts/" && rm -rf Inconsolata-3.000 v3.000.zip + && cp Inconsolata-3.000/fonts/ttf/*.ttf "/usr/local/share/fonts/" && rm -rf Inconsolata-3.000 v3.000.zip } install_sops() { @@ -124,13 +124,16 @@ install_sops() { export EXTRA_INSTALL_MESSAGE="Installing snap packages" extra_init() { # Install ghostty - echo -ne "ghostty" - # TODO: use a ppa / something updatable - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)" >/dev/null 2>&1 + ghostty=$(which ghostty >/dev/null 2>&1) if [ $? -ne 0 ]; then - echo -e "${BRed}Could not install ghostty. Skipping.${NC}" + echo -ne "ghostty" + # TODO: use a ppa / something updatable + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)" >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo -e "${BRed}Could not install ghostty. Skipping.${NC}" + fi + erase_text "ghostty" fi - erase_text "ghostty" # Install 'ligconsolata' font install_ligconsolata >/dev/null 2>&1 @@ -157,53 +160,68 @@ extra_init() { fi # TODO: Install zen browser using official :) snap - echo -ne "zen-browser" - curl -L -O https://git.vhaudiquet.fr/vhaudiquet/zen-browser-snap/releases/download/testing/zen-browser_1.14.11b_amd64.snap >/dev/null 2>&1 - snap install ./zen-browser_1.14.11b_amd64.snap --dangerous >/dev/null 2>&1 + zen_browser=$(which zen-browser >/dev/null 2>&1) if [ $? -ne 0 ]; then - echo "" - echo -e "${BRed}Could not install zen-browser. Skipping.${NC}" - else - erase_text "zen-browser" + echo -ne "zen-browser" + curl -L -O https://git.vhaudiquet.fr/vhaudiquet/zen-browser-snap/releases/download/testing/zen-browser_1.14.11b_amd64.snap >/dev/null 2>&1 + snap install ./zen-browser_1.14.11b_amd64.snap --dangerous >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "" + echo -e "${BRed}Could not install zen-browser. Skipping.${NC}" + else + erase_text "zen-browser" + fi + rm -f ./zen-browser_1.14.11b_amd64.snap fi - rm -f ./zen-browser_1.14.11b_amd64.snap - echo -ne "github-cli" - install_github_cli >/dev/null 2>&1 + github_cli=$(which gh >/dev/null 2>&1) if [ $? -ne 0 ]; then - echo "" - echo -e "${BRed}Could not install github-cli. Skipping.${NC}" - else - erase_text "github-cli" + echo -ne "github-cli" + install_github_cli >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "" + echo -e "${BRed}Could not install github-cli. Skipping.${NC}" + else + erase_text "github-cli" + fi fi # Docker, Kubectl - echo -ne "docker" - install_docker >/dev/null 2>&1 + docker=$(which docker >/dev/null 2>&1) if [ $? -ne 0 ]; then - echo "" - echo -e "${BRed}Could not install docker. Skipping.${NC}" - else - erase_text "docker" + echo -ne "docker" + install_docker >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "" + echo -e "${BRed}Could not install docker. Skipping.${NC}" + else + erase_text "docker" + fi fi - echo -ne "kubectl" - install_kubectl >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "" - echo -e "${BRed}Could not install kubectl. Skipping.${NC}" - else - erase_text "kubectl" + kubectl=$(which kubectl >/dev/null 2>&1) + if [ $? -ne 0 ]; then + echo -ne "kubectl" + install_kubectl >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "" + echo -e "${BRed}Could not install kubectl. Skipping.${NC}" + else + erase_text "kubectl" + fi fi # SOPS - echo -ne "sops" - install_sops >/dev/null 2>&1 + sops=$(which sops >/dev/null 2>&1) if [ $? -ne 0 ]; then - echo "" - echo -e "${BRed}Could not install sops. Skipping.${NC}" - else - erase_text "sops" + echo -ne "sops" + install_sops >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "" + echo -e "${BRed}Could not install sops. Skipping.${NC}" + else + erase_text "sops" + fi fi } diff --git a/mymachine.sh b/mymachine.sh index ccb9d6a..b5afe14 100755 --- a/mymachine.sh +++ b/mymachine.sh @@ -248,28 +248,46 @@ fi if ! bitwarden_is_authenticated; then if [ ! -z "${BW_CLIENTID}" ] && [ ! -z "${BW_CLIENTSECRET}" ]; then BW_CLIENTID="${BW_CLIENTID}" BW_CLIENTSECRET="${BW_CLIENTSECRET}" bw login --apikey >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo -e "${BRed}Could not login to Bitwarden. Skipping.${NC}" + fi + else + echo "Skipping Bitwarden authentication, no credentials provided." fi fi if bitwarden_is_authenticated && bitwarden_is_locked; then if [ ! -z "${BW_PASSWORD}" ]; then export BW_SESSION=$(bw unlock --raw ${BW_PASSWORD}) + if [ -z "${BW_SESSION}" ]; then + echo -e "${BRed}Could not unlock Bitwarden vault. Skipping.${NC}" + fi fi fi if ! bitwarden_is_locked; then + echo -n "Authenticating with bitwarden... " + + echo -n "sync" bw sync >/dev/null 2>&1 + erase_text "sync" # Connect github cli using GH_TOKEN special field, if needed gh auth status >/dev/null 2>&1 if [ $? -ne 0 ]; then - GH_TOKEN=$(bw get item github.com |jq -r '.fields[]|select(.name=="GH_TOKEN")|.value') - if [ $? -ne 0 ] && [ ! -z GH_TOKEN ]; then + echo -n "github-cli" + GH_TOKEN=$(bw get item github.com 2>/dev/null |jq -r '.fields[]|select(.name=="GH_TOKEN")|.value' 2>/dev/null) + if [ $? -eq 0 ] && [ ! -z "${GH_TOKEN}" ]; then GH_TOKEN="${GH_TOKEN}" gh auth login -p https -h github.com >/dev/null 2>&1 - gh auth setup-git --hostname github.com + gh auth setup-git --hostname github.com >/dev/null 2>&1 + erase_text "github-cli" + else + erase_text "github-cli" + echo -ne "${BRed}github-cli${NC} " fi fi # Obtain kubectl config if [ ! -f "/home/${USERNAME}/.kube/config" ]; then + echo -n "kubectl" KUBE=$(bw get item kube) if [ $? -eq 0 ]; then sudo -u ${USERNAME} mkdir -p "/home/${USERNAME}/.kube/" @@ -277,10 +295,13 @@ if ! bitwarden_is_locked; then ATTACHMENT_ID=$(echo "${KUBE}" |jq -r '.attachments[]|select(.fileName=="config")|.id') bw get attachment "${ATTACHMENT_ID}" --itemid "${OBJECT_ID}" --raw >"/home/${USERNAME}/.kube/config" 2>/dev/null if [ $? -ne 0 ]; then - echo -e "${BRed}Could not get .kube/config attachment from bitwarden. Skipping.${NC}" + echo -e "\n${BRed}Could not get .kube/config attachment from bitwarden. Skipping.${NC}" fi fi + erase_text "kubectl" fi + + echo "" fi # VPN configuration