aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Stepanov Aleksey <blueingreen@bluig.xyz>2025-08-14 15:12:32 +0500
committerLibravatar Stepanov Aleksey <blueingreen@bluig.xyz>2025-08-14 15:12:32 +0500
commit9f5be600a459451e6b2f3396f084092ff392d2f7 (patch)
tree7e18040238f087116a581899efcb1d236810aa7d
parentf4da21bba311329072b4d194fcea91dd37aa5f8a (diff)
add lib dir
-rw-r--r--lib/environment.sh136
-rw-r--r--lib/func.sh89
2 files changed, 225 insertions, 0 deletions
diff --git a/lib/environment.sh b/lib/environment.sh
new file mode 100644
index 0000000..5bd45eb
--- /dev/null
+++ b/lib/environment.sh
@@ -0,0 +1,136 @@
+# shellcheck disable=SC2016
+
+#****F* lib/environment.sh
+# NAME
+#
+# environment.sh - файл c основными константами и переменными.
+#
+# USED BY
+#
+# - menu.sh
+# - clone-dotfiles.sh
+#******
+
+# Global
+#
+#****d* environment.sh/ROOT_DIR
+# NAME
+#
+# ROOT_DIR - корень проекта.
+#
+# USED BY
+#
+# - BIN_DIR
+# - LIB_DIR
+#******
+export ROOT_DIR
+ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+#****d* environment.sh/BIN_DIR
+# NAME
+#
+# BIN_DIR - папка bin.
+#******
+export BIN_DIR="$ROOT_DIR/bin"
+
+#****d* environment.sh/LIB_DIR
+# NAME
+#
+# LIB_DIR - папка lib.
+#******
+export LIB_DIR="$ROOT_DIR/lib"
+
+#****d* environment.sh/DOMAIN
+# NAME
+#
+# DOMAIN - основное доменное имя.
+#
+# USED BY
+#
+# - SOFT_SERVE_DOMAIN
+#******
+export DOMAIN="bluig.xyz"
+
+#****d* environment.sh/KEEPASSXC_MASTER_PASSWORD
+# NAME
+#
+# KEEPASSXC_MASTER_PASSWORD - мастер-ключ базы данных с паролями программы KeePassXC.
+#
+# USED BY
+#
+# - func.sh
+# - openKeepass
+#******
+export KEEPASSXC_MASTER_PASSWORD="/tmp/keepassxc.mp"
+
+#****d* environment.sh/KEEPASSXC_BASE
+# NAME
+#
+# KEEPASSXC_BASE - файл базы данных с паролями для программы KeePassXC.
+#
+# USED BY
+#
+# - func.sh
+# - openKeepass
+#******
+export KEEPASSXC_BASE="$HOME/Passwords.kdbx"
+
+#****d* environment.sh/KEEPASSXC_SOFT_SERVE_ENTRY
+# NAME
+#
+# KEEPASSXC_SOFT_SERVE_ENTRY - запись soft-serve в базе данных KeePassXC.
+#
+# USED BY
+#
+# - func.sh
+# - openKeepass
+#******
+export KEEPASSXC_SOFT_SERVE_ENTRY="soft-serve"
+
+#****d* environment.sh/KEEPASSXC_SOFT_SERVE_ATTRIBUTE_HTTPS_TOKEN
+# NAME
+#
+# KEEPASSXC_SOFT_SERVE_ATTRIBUTE_HTTPS_TOKEN - название атрибута записи soft-serve в базе данных KeePassXC.
+#
+# USED BY
+#
+# - func.sh
+# - openKeepass
+#******
+export KEEPASSXC_SOFT_SERVE_ATTRIBUTE_HTTPS_TOKEN="https-token"
+
+#****d* environment.sh/SOFT_SERVE_DOMAIN
+# NAME
+#
+# SOFT_SERVE_DOMAIN - поддомен git-сервера soft-serve.
+#
+# USED BY
+#
+# - func.sh
+# - cloneInit
+#******
+export SOFT_SERVE_DOMAIN="ss.$DOMAIN"
+
+#****d* environment.sh/PIPX_YADISK_DIRECT_PKG
+# NAME
+#
+# PIPX_YADISK_DIRECT_PKG - пакет для скачивания файлов по ссылке с яндекс диска.
+#
+# USED BY
+#
+# - func.sh
+# - pipxInstall
+#******
+export PIPX_YADISK_DIRECT_PKG="wldhx.yadisk-direct"
+
+#****d* environment.sh/PIPX_YADISK_DIRECT_PKG_DIR
+# NAME
+#
+# PIPX_YADISK_DIRECT_PKG_DIR - пакет для скачивания файлов по ссылке с яндекс диска.
+#
+# USED BY
+#
+# - func.sh
+# - getKdbxFile
+#******
+export PIPX_YADISK_DIRECT_PKG_DIR="$HOME/.local/bin/yadisk-direct"
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 <toggle>
+#
+# 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"
+}