From 9f5be600a459451e6b2f3396f084092ff392d2f7 Mon Sep 17 00:00:00 2001 From: Stepanov Aleksey Date: Thu, 14 Aug 2025 15:12:32 +0500 Subject: add lib dir --- lib/func.sh | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 lib/func.sh (limited to 'lib/func.sh') diff --git a/lib/func.sh b/lib/func.sh new file mode 100644 index 0000000..50575ef --- /dev/null +++ b/lib/func.sh @@ -0,0 +1,89 @@ +#****F* lib/func.sh +# NAME +# +# func.sh - файл c основными функциями. +# +# USED BY +# +# - clone-dotfiles.sh +#****** + +#****f* func.sh/setStatusE +# NAME +# +# setStatusE - инвертирование строк начинающихся с знака #. +# +# -e - любая команда +# +# ARGUMENTS +# +# toggle - строка для включения или выключения. +# +# USAGE +# +# setStatusE +# +# EXAMPLE +# +# setStatusE "on" +# setStatusE "off" +# +# SEE ALSO +# +# Подробнее про set в: man bash, 4070 стр. +#****** +function setStatusE() { + if [[ "$1" == "on" ]]; then + set -euo pipefail + elif [[ "$1" == "off" ]]; then + set +eu + set +o pipefail + fi +} + +#****f* func.sh/getKdbxFile +# NAME +# +# getKdbxFile - скачивает Password.kdbx с яндекс диска. +#****** +function getKdbxFile() { + read -r -s -p "Введи url на kdbx файл: " KEEPASSXC_BASE_URL + read -r passwordFileLink < <("$PIPX_YADISK_DIRECT_PKG_DIR" "https://yadi.sk/d/$KEEPASSXC_BASE_URL") + + wget "$passwordFileLink" -O "$KEEPASSXC_BASE" +} + +#****f* func.sh/getHttpsToken +# NAME +# +# openKeepass - возвращает HTTPS_TOKEN. +#****** +function getHttpsToken() { + setStatusE "off" + + read -r -s -p "Введи мастер-пароль: " MASTER_PASSWORD + + echo "$MASTER_PASSWORD" >"$KEEPASSXC_MASTER_PASSWORD" + + HTTPS_TOKEN=$(keepassxc-cli show --attributes "$KEEPASSXC_SOFT_SERVE_ATTRIBUTE_HTTPS_TOKEN" "$KEEPASSXC_BASE" "$KEEPASSXC_SOFT_SERVE_ENTRY" <<<"${MASTER_PASSWORD}") + return 0 +} + +#****f* func.sh/pipxInstall +# NAME +# +# pipxInstall - установки пакетров через pipx. +#****** +function pipxInstall() { + pipx install -f "$PIPX_YADISK_DIRECT_PKG" + return 0 +} + +#****f* func.sh/cloneInit +# NAME +# +# cloneInit - клонирование проекта .init с soft-serve. +#****** +function cloneInit() { + git clone "https://$HTTPS_TOKEN@$SOFT_SERVE_DOMAIN/.init.git" "$HOME/init" +} -- cgit