aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rwxr-xr-xlib/edit.sh109
-rwxr-xr-xlib/environment.sh23
-rwxr-xr-xlib/global.sh32
-rwxr-xr-xlib/project.sh68
4 files changed, 207 insertions, 25 deletions
diff --git a/lib/edit.sh b/lib/edit.sh
index be271aa..3b2c878 100755
--- a/lib/edit.sh
+++ b/lib/edit.sh
@@ -1,15 +1,42 @@
#!/usr/bin/env bash
-#****F* lib/global.sh
+#****F* lib/edit.sh
# NAME
#
-# global.sh - общие функции для всех скриптов.
+# edit.sh - функции для edit_project.sh.
#
-# USES
+# USED BY
#
-# - environment.sh
+# - edit_project.sh
#******
+#****f* edit.sh/getIdsTask
+# NAME
+#
+# getIdsTask - возвращает массив из id задач.
+#
+# ARGUMENTS
+#
+# uuid - uuid задачи.
+#
+# USAGE
+#
+# getIdsTask uuid
+#
+# RETURN VALUE
+#
+# return {array} - Id задач
+#
+# USES
+#
+# - getNameProject
+#
+# USED BY
+#
+# - edit.sh
+# - editStageProject
+# - deleteProject
+#******
function getIdsTask() {
local nameProject
@@ -38,15 +65,62 @@ function checkFilesHash() {
fi
}
+#****f* edit.sh/backupStages
+# NAME
+#
+# backupStages - создание копии TMP_TSKW_EDIT.
+#
+# DESCRIPTION
+#
+# Делается для дальнейшего сравнения в compareTaskFiles.
+#
+# USED BY
+#
+# - edit.sh
+# - editStageProject
+#******
function backupStages() {
cp /tmp/tskw.edit /tmp/tskw.edit.bak
}
+#****f* edit.sh/editStages
+# NAME
+#
+# editStages - открытие TMP_TSKW_EDIT в nvim.
+#
+# DESCRIPTION
+#
+# Нужна для редактирования шагов проекта.
+#
+# USED BY
+#
+# - edit.sh
+# - editStageProject
+#******
function editStages() {
nvim /tmp/tskw.edit &
wait
}
+#****f* edit.sh/editStageProject
+# NAME
+#
+# editStageProject - записывает шаги проекта в TMP_TSKW_EDIT, делает копию TMP_TSKW_EDIT, сравнивает TMP_TKSW_EDIT с копией.
+#
+# DESCRIPTION
+#
+# Фактически объединяет в себе несколько других функций: backupStages, editStages, compareTaskFiles.
+#
+# USES
+#
+# - backupStages
+# - editStages
+# - compareTaskFiles
+#
+# USED BY
+#
+# - edit_project.sh
+#******
function editStageProject() {
local idsTaskProject
@@ -79,6 +153,20 @@ function editStageProject() {
checkFilesHash
}
+#****f* edit.sh/deleteProject
+# NAME
+#
+# deleteProject - удаление проекта.
+#
+# USES
+#
+# - getIdsTask
+# - getNameProject
+#
+# USED BY
+#
+# - edit_project.sh
+#******
function deleteProject() {
local idsTaskProject
local nameProject
@@ -93,6 +181,19 @@ function deleteProject() {
fi
}
+#****f* edit.sh/recreateProject
+# NAME
+#
+# recreateProject - пересоздание проекта.
+#
+# USES
+#
+# - getLatestTaskUuid
+#
+# USED BY
+#
+# - edit_project.sh
+#******
function recreateProject() {
for taskIndex in "${!taskStages[@]}"; do
if [[ "$taskIndex" -eq 0 ]]; then
diff --git a/lib/environment.sh b/lib/environment.sh
index 00f69e7..947fa74 100755
--- a/lib/environment.sh
+++ b/lib/environment.sh
@@ -5,14 +5,6 @@
# NAME
#
# environment.sh - файл c основными константами и переменными.
-#
-# USED BY
-#
-# - edit_project.sh
-# - jtx.sh
-# - someday.sh
-# - project.sh
-# - start_stop.sh
#******
# Global
@@ -21,6 +13,10 @@
# NAME
#
# ROOT_DIR - корень проекта.
+#
+# USED BY
+#
+# - tskw.sh
#******
export ROOT_DIR="$HOME/bin/taskwarrior-tui-scripts"
@@ -28,6 +24,11 @@ export ROOT_DIR="$HOME/bin/taskwarrior-tui-scripts"
# NAME
#
# LIB_DIR - папка с вспомогательными функциями.
+#
+# USED BY
+#
+# - tskw.sh
+# - edit_project.sh
#******
export LIB_DIR="$ROOT_DIR/lib"
@@ -36,8 +37,12 @@ export LIB_DIR="$ROOT_DIR/lib"
#
# MY_CAL - папка с ics файлами календаря my_cal.
#
+# USED BY
+#
+# - jtx.sh
+#
# NOTES
#
-# https://baikal.bluig.xyz/dav.php/calendars/me/my_cal/
+# https://baikal.bluig.space/dav.php/calendars/me/my_cal/
#******
export MY_CAL="$XDG_DATA_HOME/.calendars/my_cal"
diff --git a/lib/global.sh b/lib/global.sh
index 58f8721..a59520c 100755
--- a/lib/global.sh
+++ b/lib/global.sh
@@ -30,15 +30,14 @@
#
# NOTES
#
-# Категории уведомлений находятся в $HOME/.config/mako/category
+# Категории уведомлений находятся в ~/.config/mako/category
#
-# USES
+# USES BY
#
-# - global.sh
+# - tskw.sh
# - project.sh
+# - global.sh
# - edit.sh
-# - someday.sh
-# - start_stop.sh
# - edit_project.sh
#******
function notify() {
@@ -54,7 +53,7 @@ function notify() {
#
# Возвращает id задачи с тегом +LATEST, которая является самой последней из добавленных.
#
-# USES
+# USES BY
#
# - project.sh
#
@@ -79,7 +78,7 @@ function getLatestTaskId() {
#
# Возвращает uuid задачи с тегом +LATEST, которая является самой последней из добавленных.
#
-# USES
+# USES BY
#
# - project.sh
#
@@ -108,10 +107,9 @@ function getLatestTaskUuid() {
#
# getTags <id | uuid>
#
-# USES
+# USES BY
#
# - project.sh
-# - someday.sh
# - edit_project.sh
#
# RETURN VALUE
@@ -135,10 +133,15 @@ function getTags() {
#
# getNameProject <id | uuid>
#
-# USES
+# USED BY
#
# - edit.sh
#
+# USES BY
+#
+# - edit.sh
+# - edit_project.sh
+#
# RETURN VALUE
#
# return {String} - Uuid задачи
@@ -160,9 +163,10 @@ function getNameProject() {
#
# getAnnotationCount <id | uuid>
#
-# USES
+# USES BY
#
# - project.sh
+# - denotateAllAnnotations
#
# RETURN VALUE
#
@@ -185,7 +189,7 @@ function getAnnotationCount() {
#
# checkExistingProject <id | uuid>
#
-# USES
+# USES BY
#
# - project.sh
#******
@@ -250,6 +254,10 @@ function hasProject() {
#
# USES
#
+# - getAnnotationCount
+#
+# USES BY
+#
# - project.sh
#******
function denotateAllAnnotations() {
diff --git a/lib/project.sh b/lib/project.sh
index 03e322f..f798fa0 100755
--- a/lib/project.sh
+++ b/lib/project.sh
@@ -6,14 +6,65 @@
# project.sh - bash-скрипт для создания проекта в taskwarrior-tui.
#******
+#****f* global.sh/getProjName
+# NAME
+#
+# getProjName - возвращает название проекта.
+#
+# USES BY
+#
+# - taskProj
+#
+# NOTES
+#
+# Cамое первое описание (description) является названием задачи.
+#
+# RETURN VALUE
+#
+# return {string} - название задачи.
+#******
function getProjName() {
task _get "$1".description
}
+#****f* global.sh/getExitCriteria
+# NAME
+#
+# getExitCriteria - возвращает критерий завершения.
+#
+# USES BY
+#
+# - taskProj
+#
+# NOTES
+#
+# Следующее после самого первого описания (description) идёт - критерий завершения.
+#
+# RETURN VALUE
+#
+# return {string} - критерий завершения задачи.
+#******
function getExitCriteria() {
task _get "$1".annotations.1.description
}
+#****f* global.sh/taskCheck
+# NAME
+#
+# taskCheck - проверка обрабатываемой задачи.
+#
+# DESCRIPTION
+#
+# Проверка задачи на наличие: критерия завершения, названия проекта, первого шага и существующего проекта.
+#
+# USES BY
+#
+# - taskProj
+#
+# RETURN VALUE
+#
+# return {number} - статус завершения.
+#******
function taskCheck() {
local task
@@ -40,6 +91,23 @@ function taskCheck() {
esac
}
+#****f* global.sh/taskProj
+# NAME
+#
+# taskProj - создание проекта.
+#
+# NOTES
+#
+# Проект создается на основе:
+#
+# - названия проекта;
+# - критерия завершения;
+# - первого шага.
+#
+# USES BY
+#
+# - tskw.sh
+#******
function taskProj() {
local task
local projName