aboutsummaryrefslogtreecommitdiff
path: root/lib/func.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/func.sh')
-rw-r--r--lib/func.sh89
1 files changed, 89 insertions, 0 deletions
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"
+}