aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Stepanov Aleksey <blueingreen@bluig.xyz>2025-05-11 14:12:21 +0500
committerLibravatar Stepanov Aleksey <blueingreen@bluig.xyz>2025-05-11 14:12:21 +0500
commitb26818dad13db472b20e299d96d0fb124417a5e6 (patch)
treecaf27ea27c321cbe4a8ce0be25c4cc37d3933dfd
add taskwarrior-tui-scripts project
-rw-r--r--docs/edit_project_sh.html43
-rw-r--r--docs/jtx_sh.html43
-rw-r--r--docs/lib/environment_sh.html92
-rw-r--r--docs/lib/global_sh.html218
-rw-r--r--docs/lib/project_sh.html43
-rw-r--r--docs/masterindex.html63
-rw-r--r--docs/robo_definitions.html43
-rw-r--r--docs/robo_dirs.html40
-rw-r--r--docs/robo_files.html44
-rw-r--r--docs/robo_functions.html46
-rw-r--r--docs/robo_modules.html40
-rw-r--r--docs/robo_sourcefiles.html64
-rw-r--r--docs/robodoc.css302
-rw-r--r--docs/robodoc.js10
-rw-r--r--docs/toc_index.html63
-rw-r--r--docs/tskw_sh.html58
-rwxr-xr-xedit_project.sh30
-rwxr-xr-xjtx.sh46
-rwxr-xr-xlib/edit.sh107
-rwxr-xr-xlib/environment.sh43
-rwxr-xr-xlib/global.sh265
-rwxr-xr-xlib/project.sh78
-rw-r--r--robodoc.rc49
-rwxr-xr-xtskw.sh58
24 files changed, 1888 insertions, 0 deletions
diff --git a/docs/edit_project_sh.html b/docs/edit_project_sh.html
new file mode 100644
index 0000000..b3ff28a
--- /dev/null
+++ b/docs/edit_project_sh.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>edit_project.sh</title>
+<!-- Source: ./edit_project.sh -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="2e2fedit5fproject2esh"></a>
+<a name="robo0"></a><h2>./edit_project.sh [ Files ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./robo_files.html#robo_top_of_doc">Files</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>edit_project.sh</strong> - bash-скрипт для редактирования проекта в taskwarrior-tui.
+</p>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./edit_project.sh with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/jtx_sh.html b/docs/jtx_sh.html
new file mode 100644
index 0000000..e0d0789
--- /dev/null
+++ b/docs/jtx_sh.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>jtx.sh</title>
+<!-- Source: ./jtx.sh -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="2e2fjtx2esh"></a>
+<a name="robo1"></a><h2>./jtx.sh [ Files ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./robo_files.html#robo_top_of_doc">Files</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>jtx.sh</strong> - bash-скрипт для работы с мобильным приложением jtxBoard.
+</p>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./jtx.sh with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/lib/environment_sh.html b/docs/lib/environment_sh.html
new file mode 100644
index 0000000..792b83b
--- /dev/null
+++ b/docs/lib/environment_sh.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<script src="../robodoc.js"></script>
+<title>environment.sh</title>
+<!-- Source: ./lib/environment.sh -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="../robo_files.html#top">Files</a>
+<a class="menuitem" href="../robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="lib2fenvironment2esh"></a>
+<a name="robo2"></a><h2>lib/environment.sh [ Files ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../tskw_sh.html#robo5">lib</a> ] [ <a href="../robo_files.html#robo_top_of_doc">Files</a> ]</p>
+<p class="item_name">NAME</p>
+<p> environment - файл c основными константами и переменными.
+</p>
+<p class="item_name">USED BY</p>
+<ul><li> <a href="../edit_project_sh.html#robo0">edit_project.sh</a>
+</li>
+<li> <a href="../jtx_sh.html#robo_top_of_doc">jtx.sh</a>
+</li>
+<li> someday.sh
+</li>
+<li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+<li> start_stop.sh
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="environment2esh2fFOOTE"></a>
+<a name="robo7"></a><h2>environment.sh/FOOTE [ Definitions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo2">environment.sh</a> ] [ <a href="../robo_definitions.html#robo_top_of_doc">Definitions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>FOOTE</strong> - bash-скрипт $HOME/bin/foote.sh.
+</p>
+
+<hr />
+<a name="environment2esh2fLIB5fDIR"></a>
+<a name="robo8"></a><h2>environment.sh/LIB_DIR [ Definitions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo2">environment.sh</a> ] [ <a href="../robo_definitions.html#robo_top_of_doc">Definitions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>LIB_DIR</strong> - папка с вспомогательными функциями.
+</p>
+
+<hr />
+<a name="environment2esh2fPEACLOCK5fCUSTOM5fCONFIG"></a>
+<a name="robo9"></a><h2>environment.sh/PEACLOCK_CUSTOM_CONFIG [ Definitions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo2">environment.sh</a> ] [ <a href="../robo_definitions.html#robo_top_of_doc">Definitions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>PEACLOCK_CUSTOM_CONFIG</strong> - кастомный файл конфигурации для peaclock.
+</p>
+
+<hr />
+<a name="environment2esh2fROOT5fDIR"></a>
+<a name="robo10"></a><h2>environment.sh/ROOT_DIR [ Definitions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo2">environment.sh</a> ] [ <a href="../robo_definitions.html#robo_top_of_doc">Definitions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>ROOT_DIR</strong> - корень проекта.
+</p>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./lib/environment.sh with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/lib/global_sh.html b/docs/lib/global_sh.html
new file mode 100644
index 0000000..3600ff8
--- /dev/null
+++ b/docs/lib/global_sh.html
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<script src="../robodoc.js"></script>
+<title>global.sh</title>
+<!-- Source: ./lib/global.sh -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="../robo_files.html#top">Files</a>
+<a class="menuitem" href="../robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="lib2fglobal2esh"></a>
+<a name="robo3"></a><h2>lib/global.sh [ Files ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../tskw_sh.html#robo5">lib</a> ] [ <a href="../robo_files.html#robo_top_of_doc">Files</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>global.sh</strong> - общие функции для всех скриптов.
+</p>
+<p class="item_name">USES</p>
+<ul><li> <a href="./environment_sh.html#robo2">environment.sh</a>
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="global2esh2fcheckExistingProject"></a>
+<a name="robo11"></a><h2>global.sh/checkExistingProject [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>checkExistingProject</strong> - проверка на наличие существующего проекта.
+</p>
+<p class="item_name">ARGUMENTS</p>
+<pre class="source"># id | uuid - id или uuid задачи.
+</pre>
+<p class="item_name">USAGE</p>
+<pre class="source"># <strong>checkExistingProject</strong> &lt;id | uuid&gt;
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="global2esh2fdenotateAllAnnotations"></a>
+<a name="robo12"></a><h2>global.sh/denotateAllAnnotations [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>denotateAllAnnotations</strong> - удаление всех аннотаций у задачи.
+</p>
+<p class="item_name">ARGUMENTS</p>
+<pre class="source"># id | uuid - id или uuid задачи.
+</pre>
+<p class="item_name">USAGE</p>
+<pre class="source"># <strong>denotateAllAnnotations</strong> &lt;id | uuid&gt;
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="global2esh2fgetAnnotationCount"></a>
+<a name="robo13"></a><h2>global.sh/getAnnotationCount [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>getAnnotationCount</strong> - возвращает длину массива аннотаций задачи.
+</p>
+<p class="item_name">ARGUMENTS</p>
+<pre class="source"># id | uuid - id или uuid задачи.
+</pre>
+<p class="item_name">USAGE</p>
+<pre class="source"># <strong>getAnnotationCount</strong> &lt;id | uuid&gt;
+</pre>
+<p class="item_name">RETURN VALUE</p>
+<pre class="source"># return {String} - Количество аннотаций
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="global2esh2fgetLatestTaskId"></a>
+<a name="robo14"></a><h2>global.sh/getLatestTaskId [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>getLatestTaskId</strong> - возвращает id задачи.
+</p>
+<p class="item_name">DESCRIPTION</p>
+<p> Возвращает id задачи с тегом +LATEST, которая является самой последней из добавленных.
+</p>
+<p class="item_name">RETURN VALUE</p>
+<pre class="source"># return {string} - Id задачи
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+</ul>
+<p></p>
+<p class="item_name">NOTES</p>
+<pre> <a href="https://taskwarrior.org/docs/tags/">https://taskwarrior.org/docs/tags/</a>
+</pre>
+
+<hr />
+<a name="global2esh2fgetTags"></a>
+<a name="robo15"></a><h2>global.sh/getTags [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>getTags</strong> - возвращает массив тегов задачи.
+</p>
+<p class="item_name">ARGUMENTS</p>
+<pre class="source"># id | uuid - id или uuid задачи.
+</pre>
+<p class="item_name">USAGE</p>
+<pre class="source"># <strong>getTags</strong> &lt;id | uuid&gt;
+</pre>
+<p class="item_name">RETURN VALUE</p>
+<pre class="source"># return {Array} - Массив тегов
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+<li> someday.sh
+</li>
+<li> <a href="../edit_project_sh.html#robo0">edit_project.sh</a>
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="global2esh2fhasProject"></a>
+<a name="robo16"></a><h2>global.sh/hasProject [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>hasProject</strong> - проверка на наличие проекта у задачи.
+</p>
+<p class="item_name">ARGUMENTS</p>
+<pre class="source"># id | uuid - id или uuid задачи.
+</pre>
+<p class="item_name">USAGE</p>
+<pre class="source"># <strong>hasProject</strong> &lt;id | uuid&gt;
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+</ul>
+<p></p>
+
+<hr />
+<a name="global2esh2fnotify"></a>
+<a name="robo17"></a><h2>global.sh/notify [ Functions ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="#robo3">global.sh</a> ] [ <a href="../robo_functions.html#robo_top_of_doc">Functions</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>notify</strong> - вывод сообщения через <strong>notify</strong>-send.
+</p>
+<p class="item_name">ARGUMENTS</p>
+<pre class="source"># category - категория уведомления.
+# message - строка сообщения.
+</pre>
+<p class="item_name">USAGE</p>
+<pre class="source"># <strong>notify</strong> &lt;category&gt; &lt;message&gt;
+</pre>
+<p class="item_name">EXAMPLE</p>
+<pre class="source"># <strong>notify</strong> "msg-error" "Ошибка!"
+</pre>
+<p class="item_name">USES</p>
+<ul><li> <a href="#robo_top_of_doc">global.sh</a>
+</li>
+<li> <a href="./project_sh.html#robo_top_of_doc">project.sh</a>
+</li>
+<li> edit.sh
+</li>
+<li> someday.sh
+</li>
+<li> start_stop.sh
+</li>
+<li> <a href="../edit_project_sh.html#robo0">edit_project.sh</a>
+</li>
+</ul>
+<p></p>
+<p class="item_name">NOTES</p>
+<pre> Категории уведомлений находятся в $HOME/.config/mako/category
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./lib/global.sh with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/lib/project_sh.html b/docs/lib/project_sh.html
new file mode 100644
index 0000000..aded21a
--- /dev/null
+++ b/docs/lib/project_sh.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="../robodoc.css" type="text/css" />
+<script src="../robodoc.js"></script>
+<title>project.sh</title>
+<!-- Source: ./lib/project.sh -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="../toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="../robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="../masterindex.html#top">Index</a>
+<a class="menuitem" href="../robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="../robo_files.html#top">Files</a>
+<a class="menuitem" href="../robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="../robo_functions.html#top">Functions</a>
+<a class="menuitem" href="../robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="lib2fproject2esh"></a>
+<a name="robo4"></a><h2>lib/project.sh [ Files ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="../tskw_sh.html#robo5">lib</a> ] [ <a href="../robo_files.html#robo_top_of_doc">Files</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>project.sh</strong> - общие функции для всех скриптов.
+</p>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./lib/project.sh with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/masterindex.html b/docs/masterindex.html
new file mode 100644
index 0000000..073d5bf
--- /dev/null
+++ b/docs/masterindex.html
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Index</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Index</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="C"></a>C</h2><a href="./lib/global_sh.html#robo11" class="indexitem" >checkExistingProject</a>
+<h2><a name="D"></a>D</h2><a href="./lib/global_sh.html#robo12" class="indexitem" >denotateAllAnnotations</a>
+<h2><a name="E"></a>E</h2><a href="./edit_project_sh.html#robo0" class="indexitem" >edit_project.sh</a>
+<a href="./edit_project_sh.html#robo_top_of_doc" class="indexitem" >edit_project.sh</a>
+<a href="./lib/environment_sh.html#robo_top_of_doc" class="indexitem" >environment.sh</a>
+<a href="./lib/environment_sh.html#robo2" class="indexitem" >environment.sh</a>
+<h2><a name="F"></a>F</h2><a href="./lib/environment_sh.html#robo7" class="indexitem" >FOOTE</a>
+<h2><a name="G"></a>G</h2><a href="./lib/global_sh.html#robo13" class="indexitem" >getAnnotationCount</a>
+<a href="./lib/global_sh.html#robo14" class="indexitem" >getLatestTaskId</a>
+<a href="./lib/global_sh.html#robo15" class="indexitem" >getTags</a>
+<a href="./lib/global_sh.html#robo3" class="indexitem" >global.sh</a>
+<a href="./lib/global_sh.html#robo_top_of_doc" class="indexitem" >global.sh</a>
+<h2><a name="H"></a>H</h2><a href="./lib/global_sh.html#robo16" class="indexitem" >hasProject</a>
+<h2><a name="J"></a>J</h2><a href="./jtx_sh.html#robo1" class="indexitem" >jtx.sh</a>
+<a href="./jtx_sh.html#robo_top_of_doc" class="indexitem" >jtx.sh</a>
+<h2><a name="L"></a>L</h2><a href="./tskw_sh.html#robo5" class="indexitem" >lib</a>
+<a href="./lib/environment_sh.html#robo8" class="indexitem" >LIB_DIR</a>
+<h2><a name="N"></a>N</h2><a href="./lib/global_sh.html#robo17" class="indexitem" >notify</a>
+<h2><a name="P"></a>P</h2><a href="./lib/environment_sh.html#robo9" class="indexitem" >PEACLOCK_CUSTOM_CONFIG</a>
+<a href="./lib/project_sh.html#robo_top_of_doc" class="indexitem" >project.sh</a>
+<a href="./lib/project_sh.html#robo4" class="indexitem" >project.sh</a>
+<h2><a name="R"></a>R</h2><a href="./lib/environment_sh.html#robo10" class="indexitem" >ROOT_DIR</a>
+<h2><a name="T"></a>T</h2><a href="./tskw_sh.html#robo_top_of_doc" class="indexitem" >tskw.sh</a>
+<a href="./tskw_sh.html#robo6" class="indexitem" >tskw.sh</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robo_definitions.html b/docs/robo_definitions.html
new file mode 100644
index 0000000..e250df9
--- /dev/null
+++ b/docs/robo_definitions.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Definitions</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Definitions</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="F"></a>F</h2><a href="./lib/environment_sh.html#robo7" class="indexitem" >FOOTE</a>
+<h2><a name="L"></a>L</h2><a href="./lib/environment_sh.html#robo8" class="indexitem" >LIB_DIR</a>
+<h2><a name="P"></a>P</h2><a href="./lib/environment_sh.html#robo9" class="indexitem" >PEACLOCK_CUSTOM_CONFIG</a>
+<h2><a name="R"></a>R</h2><a href="./lib/environment_sh.html#robo10" class="indexitem" >ROOT_DIR</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robo_dirs.html b/docs/robo_dirs.html
new file mode 100644
index 0000000..6b10f02
--- /dev/null
+++ b/docs/robo_dirs.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Directories</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Directories</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="L"></a>L</h2><a href="./tskw_sh.html#robo5" class="indexitem" >lib</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robo_files.html b/docs/robo_files.html
new file mode 100644
index 0000000..b3d0217
--- /dev/null
+++ b/docs/robo_files.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Files</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Files</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="E"></a>E</h2><a href="./edit_project_sh.html#robo0" class="indexitem" >edit_project.sh</a>
+<a href="./lib/environment_sh.html#robo2" class="indexitem" >environment.sh</a>
+<h2><a name="G"></a>G</h2><a href="./lib/global_sh.html#robo3" class="indexitem" >global.sh</a>
+<h2><a name="J"></a>J</h2><a href="./jtx_sh.html#robo1" class="indexitem" >jtx.sh</a>
+<h2><a name="P"></a>P</h2><a href="./lib/project_sh.html#robo4" class="indexitem" >project.sh</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robo_functions.html b/docs/robo_functions.html
new file mode 100644
index 0000000..7a0ab3c
--- /dev/null
+++ b/docs/robo_functions.html
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Functions</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Functions</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="C"></a>C</h2><a href="./lib/global_sh.html#robo11" class="indexitem" >checkExistingProject</a>
+<h2><a name="D"></a>D</h2><a href="./lib/global_sh.html#robo12" class="indexitem" >denotateAllAnnotations</a>
+<h2><a name="G"></a>G</h2><a href="./lib/global_sh.html#robo13" class="indexitem" >getAnnotationCount</a>
+<a href="./lib/global_sh.html#robo14" class="indexitem" >getLatestTaskId</a>
+<a href="./lib/global_sh.html#robo15" class="indexitem" >getTags</a>
+<h2><a name="H"></a>H</h2><a href="./lib/global_sh.html#robo16" class="indexitem" >hasProject</a>
+<h2><a name="N"></a>N</h2><a href="./lib/global_sh.html#robo17" class="indexitem" >notify</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robo_modules.html b/docs/robo_modules.html
new file mode 100644
index 0000000..b337f30
--- /dev/null
+++ b/docs/robo_modules.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Modules</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h1>Modules</h1>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+<h2><a name="T"></a>T</h2><a href="./tskw_sh.html#robo6" class="indexitem" >tskw.sh</a>
+<h2><a href="#A">A</a> - <a href="#B">B</a> - <a href="#C">C</a> - <a href="#D">D</a> - <a href="#E">E</a> - <a href="#F">F</a> - <a href="#G">G</a> - <a href="#H">H</a> - <a href="#I">I</a> - <a href="#J">J</a> - <a href="#K">K</a> - <a href="#L">L</a> - <a href="#M">M</a> - <a href="#N">N</a> - <a href="#O">O</a> - <a href="#P">P</a> - <a href="#Q">Q</a> - <a href="#R">R</a> - <a href="#S">S</a> - <a href="#T">T</a> - <a href="#U">U</a> - <a href="#V">V</a> - <a href="#W">W</a> - <a href="#X">X</a> - <a href="#Y">Y</a> - <a href="#Z">Z</a> - <a href="#0">0</a> - <a href="#1">1</a> - <a href="#2">2</a> - <a href="#3">3</a> - <a href="#4">4</a> - <a href="#5">5</a> - <a href="#6">6</a> - <a href="#7">7</a> - <a href="#8">8</a> - <a href="#9">9</a></h2>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robo_sourcefiles.html b/docs/robo_sourcefiles.html
new file mode 100644
index 0000000..67bbc6a
--- /dev/null
+++ b/docs/robo_sourcefiles.html
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Sourcefiles</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<ul>
+<li>
+./<ul>
+<li>
+<a href="./edit_project_sh.html#robo_top_of_doc"><tt>
+edit_project.sh</tt></a></li>
+<li>
+<a href="./jtx_sh.html#robo_top_of_doc"><tt>
+jtx.sh</tt></a></li>
+<li>
+<a href="./tskw_sh.html#robo_top_of_doc"><tt>
+tskw.sh</tt></a></li>
+<li>
+./lib/<ul>
+<li>
+<a href="./lib/environment_sh.html#robo_top_of_doc"><tt>
+environment.sh</tt></a></li>
+<li>
+<a href="./lib/global_sh.html#robo_top_of_doc"><tt>
+global.sh</tt></a></li>
+<li>
+<a href="./lib/project_sh.html#robo_top_of_doc"><tt>
+project.sh</tt></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/robodoc.css b/docs/robodoc.css
new file mode 100644
index 0000000..207a172
--- /dev/null
+++ b/docs/robodoc.css
@@ -0,0 +1,302 @@
+/****h* ROBODoc/ROBODoc Cascading Style Sheet
+ * FUNCTION
+ * This is the default cascading style sheet for documentation
+ * generated with ROBODoc.
+ * You can edit this file to your own liking and then use
+ * it with the option
+ * --css <filename>
+ *
+ * This style-sheet defines the following layout
+ * +----------------------------------------+
+ * | logo |
+ * +----------------------------------------+
+ * | extra |
+ * +----------------------------------------+
+ * | | navi- |
+ * | | gation |
+ * | content | |
+ * | | |
+ * +----------------------------------------+
+ * | footer |
+ * +----------------------------------------+
+ *
+ * This style-sheet is based on a style-sheet that was automatically
+ * generated with the Strange Banana stylesheet generator.
+ * See http://www.strangebanana.com/generator.aspx
+ *
+ ******
+ * $Id: html_generator.c,v 1.94 2008/06/17 11:49:27 gumpu Exp $
+ */
+
+body
+{
+ background-color: rgb(255,255,255);
+ color: rgb(98,84,55);
+ font-family: Arial, serif;
+ border-color: rgb(226,199,143);
+}
+
+pre
+{
+ font-family: monospace;
+ margin: 15px;
+ padding: 5px;
+ white-space: pre;
+ color: #000;
+}
+
+pre.source
+{
+ background-color: #ffe;
+ border: dashed #aa9 1px;
+}
+
+p
+{
+ margin:15px;
+}
+
+p.item_name
+{
+ font-weight: bolder;
+ margin:5px;
+ font-size: 120%;
+}
+
+#content
+{
+ font-size: 100%;
+ color: rgb(0,0,0);
+ background-color: rgb(255,255,255);
+ border-left-width: 0px;
+ border-right-width: 0px;
+ border-top-width: 0px;
+ border-bottom-width: 0px;
+ border-left-style: none;
+ border-right-style: none;
+ border-top-style: none;
+ border-bottom-style: none;
+ padding: 40px 31px 14px 17px;
+ border-color: rgb(0,0,0);
+ text-align: justify;
+}
+
+#navigation
+{
+ background-color: rgb(98,84,55);
+ color: rgb(230,221,202);
+ font-family: "Times New Roman", serif;
+ font-style: normal;
+ border-color: rgb(0,0,0);
+}
+
+a.menuitem
+{
+ font-size: 120%;
+ background-color: rgb(0,0,0);
+ color: rgb(195,165,100);
+ font-variant: normal;
+ text-transform: none;
+ font-weight: normal;
+ padding: 1px 8px 3px 1px;
+ margin-left: 5px;
+ margin-right: 5px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ border-color: rgb(159,126,57);
+ text-align: right;
+}
+
+#logo, #logo a
+{
+ font-size: 130%;
+ background-color: rgb(198,178,135);
+ color: rgb(98,84,55);
+ font-family: Georgia, serif;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ font-weight: bold;
+ padding: 20px 18px 20px 18px;
+ border-color: rgb(255,255,255);
+ text-align: right;
+}
+
+#extra, #extra a
+{
+ font-size: 128%;
+ background-color: rgb(0,0,0);
+ color: rgb(230,221,202);
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ font-weight: normal;
+ border-left-width: 0px;
+ border-right-width: 0px;
+ border-top-width: 0px;
+ border-bottom-width: 0px;
+ border-left-style: none;
+ border-right-style: none;
+ border-top-style: none;
+ border-bottom-style: none;
+ padding: 12px 12px 12px 12px;
+ border-color: rgb(195,165,100);
+ text-align: center;
+}
+
+#content a
+{
+ color: rgb(159,126,57);
+ text-decoration: none;
+}
+
+#content a:hover, #content a:active
+{
+ color: rgb(255,255,255);
+ background-color: rgb(159,126,57);
+}
+
+a.indexitem
+{
+ display: block;
+}
+
+h1, h2, h3, h4, h5, h6
+{
+ background-color: rgb(221,221,221);
+ font-family: Arial, serif;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ font-weight: normal;
+}
+
+h1
+{
+ font-size: 151%;
+}
+
+h2
+{
+ font-size: 142%;
+}
+
+h3
+{
+ font-size: 133%;
+}
+
+h4
+{
+ font-size: 124%;
+}
+
+h5
+{
+ font-size: 115%;
+}
+
+h6
+{
+ font-size: 106%;
+}
+
+#navigation a
+{
+ text-decoration: none;
+}
+
+.menuitem:hover
+{
+ background-color: rgb(195,165,100);
+ color: rgb(0,0,0);
+}
+
+#extra a
+{
+ text-decoration: none;
+}
+
+#logo a
+{
+ text-decoration: none;
+}
+
+#extra a:hover
+{
+}
+
+/* layout */
+#navigation
+{
+ width: 22%;
+ position: relative;
+ top: 0;
+ right: 0;
+ float: right;
+ text-align: center;
+ margin-left: 10px;
+}
+
+.menuitem {width: auto;}
+#content {width: auto;}
+.menuitem {display: block;}
+
+
+div#footer
+{
+ background-color: rgb(198,178,135);
+ color: rgb(98,84,55);
+ clear: left;
+ width: 100%;
+ font-size: 71%;
+}
+
+div#footer a
+{
+ background-color: rgb(198,178,135);
+ color: rgb(98,84,55);
+}
+
+div#footer p
+{
+ margin:0;
+ padding:5px 10px
+}
+
+span.keyword
+{
+ color: #00F;
+}
+
+span.comment
+{
+ color: #080;
+}
+
+span.quote
+{
+ color: #F00;
+}
+
+span.squote
+{
+ color: #F0F;
+}
+
+span.sign
+{
+ color: #008B8B;
+}
+
+span.line_number
+{
+ color: #808080;
+}
+
+@media print
+{
+ #navigation {display: none;}
+ #content {padding: 0px;}
+ #content a {text-decoration: underline;}
+}
diff --git a/docs/robodoc.js b/docs/robodoc.js
new file mode 100644
index 0000000..4912c05
--- /dev/null
+++ b/docs/robodoc.js
@@ -0,0 +1,10 @@
+/****h* ROBODoc/ROBODoc Javascript support
+ * FUNCTION
+ * This is the default Javascript library for documentation
+ * generated with ROBODoc.
+ * You can edit this file to your own liking and then use
+ * it with the option
+ * --js <filename>
+ ******
+ * $Id: html_generator.c,v 1.95 2019/01/04 23:58:00 cashy Exp $
+ */
diff --git a/docs/toc_index.html b/docs/toc_index.html
new file mode 100644
index 0000000..721f2a4
--- /dev/null
+++ b/docs/toc_index.html
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>Table of Contents</title>
+<!-- Source: ./ -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="extra">
+</div> <!-- extra -->
+<div id="navigation">
+<a class="menuitem" href="#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<h3>TABLE OF CONTENTS</h3>
+<ul>
+<li>1. <a href="./tskw_sh.html#robo6">taskwarrior-tui-scripts/tskw.sh</a></li>
+<li>2. <a href="./tskw_sh.html#robo5">taskwarrior-tui-scripts/lib</a></li>
+<ul>
+<li>2.1. <a href="./lib/environment_sh.html#robo2">lib/environment.sh</a></li>
+<ul>
+<li>2.1.1. <a href="./lib/environment_sh.html#robo7">environment.sh/FOOTE</a></li>
+<li>2.1.2. <a href="./lib/environment_sh.html#robo8">environment.sh/LIB_DIR</a></li>
+<li>2.1.3. <a href="./lib/environment_sh.html#robo9">environment.sh/PEACLOCK_CUSTOM_CONFIG</a></li>
+<li>2.1.4. <a href="./lib/environment_sh.html#robo10">environment.sh/ROOT_DIR</a></li>
+</ul>
+<li>2.2. <a href="./lib/global_sh.html#robo3">lib/global.sh</a></li>
+<ul>
+<li>2.2.1. <a href="./lib/global_sh.html#robo11">global.sh/checkExistingProject</a></li>
+<li>2.2.2. <a href="./lib/global_sh.html#robo12">global.sh/denotateAllAnnotations</a></li>
+<li>2.2.3. <a href="./lib/global_sh.html#robo13">global.sh/getAnnotationCount</a></li>
+<li>2.2.4. <a href="./lib/global_sh.html#robo14">global.sh/getLatestTaskId</a></li>
+<li>2.2.5. <a href="./lib/global_sh.html#robo15">global.sh/getTags</a></li>
+<li>2.2.6. <a href="./lib/global_sh.html#robo16">global.sh/hasProject</a></li>
+<li>2.2.7. <a href="./lib/global_sh.html#robo17">global.sh/notify</a></li>
+</ul>
+<li>2.3. <a href="./lib/project_sh.html#robo4">lib/project.sh</a></li>
+</ul>
+<li>3. <a href="./jtx_sh.html#robo1">./jtx.sh</a></li>
+<li>4. <a href="./edit_project_sh.html#robo0">./edit_project.sh</a></li>
+</ul>
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./ with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/docs/tskw_sh.html b/docs/tskw_sh.html
new file mode 100644
index 0000000..1a17924
--- /dev/null
+++ b/docs/tskw_sh.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
+<link rel="stylesheet" href="./robodoc.css" type="text/css" />
+<script src="./robodoc.js"></script>
+<title>tskw.sh</title>
+<!-- Source: ./tskw.sh -->
+<!-- Generated with ROBODoc Version 4.99.44 (Mar 23 2025) -->
+</head>
+<body>
+<div id="logo">
+<a name="robo_top_of_doc"></a>
+</div> <!-- logo -->
+<div id="navigation">
+<a class="menuitem" href="./toc_index.html#top">Table of Contents</a>
+<a class="menuitem" href="./robo_sourcefiles.html#top">Sourcefiles</a>
+<a class="menuitem" href="./masterindex.html#top">Index</a>
+<a class="menuitem" href="./robo_dirs.html#top">Directories</a>
+<a class="menuitem" href="./robo_files.html#top">Files</a>
+<a class="menuitem" href="./robo_definitions.html#top">Definitions</a>
+<a class="menuitem" href="./robo_functions.html#top">Functions</a>
+<a class="menuitem" href="./robo_modules.html#top">Modules</a>
+</div> <!-- navigation -->
+<div id="content">
+<hr />
+<a name="taskwarrior2dtui2dscripts2flib"></a>
+<a name="robo5"></a><h2>taskwarrior-tui-scripts/lib [ Directories ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./robo_dirs.html#robo_top_of_doc">Directories</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>lib</strong> - папка с вспомогательными функциями.
+</p>
+
+<hr />
+<a name="taskwarrior2dtui2dscripts2ftskw2esh"></a>
+<a name="robo6"></a><h2>taskwarrior-tui-scripts/tskw.sh [ Modules ]</h2>
+
+<p>[ <a href="#robo_top_of_doc">Top</a> ] [ <a href="./robo_modules.html#robo_top_of_doc">Modules</a> ]</p>
+<p class="item_name">NAME</p>
+<p> <strong>tskw.sh</strong> - основной выполняемый файл для работы с taskwarrior-tui.
+</p>
+<p class="item_name">DESCRIPTION</p>
+<p> Входная точка для всех остальных скриптов проекта.
+</p>
+<p class="item_name">NOTES</p>
+<pre> Taskwarrior-tui передает в $@ uuid задач в виде строки с uuid разеделенные пробелами ("uuid1" "uuid2")
+</pre>
+
+</div> <!-- content -->
+<div id="footer">
+<p>Generated from ./tskw.sh with <a href="http://www.xs4all.nl/~rfsber/Robo/robodoc.html">ROBODoc</a> V4.99.44 on 2025-05-01 19:58:11</p>
+</div> <!-- footer -->
+</body>
+</html>
diff --git a/edit_project.sh b/edit_project.sh
new file mode 100755
index 0000000..1e2e5bb
--- /dev/null
+++ b/edit_project.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+#****F* ./edit_project.sh
+# NAME
+#
+# edit_project.sh - bash-скрипт для редактирования проекта в taskwarrior-tui.
+#******
+
+source "$LIB_DIR/edit.sh"
+
+declare task
+declare tags
+declare project
+
+task="$1"
+project=$(getNameProject "$task")
+tags=$(getTags "$task")
+
+if [[ "$project" == "" ]]; then
+ notify "msg-error" "Выбрана задача без проекта. Выход..."
+ exit 1
+elif [[ "$tags" =~ "someday" ]]; then
+ notify "msg-error" "Задача содержит тег #someday. Выход..."
+ exit 1
+fi
+
+getIdsTask "$task"
+editStageProject "$task"
+deleteProject "$task"
+recreateProject
diff --git a/jtx.sh b/jtx.sh
new file mode 100755
index 0000000..1dcc19b
--- /dev/null
+++ b/jtx.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#****F* ./jtx.sh
+# NAME
+#
+# jtx.sh - bash-скрипт для работы с мобильным приложением jtxBoard.
+#******
+
+source "$HOME/bin/taskwarrior-tui-scripts/lib/global.sh"
+
+taskArr=($@)
+
+declare parentTaskUid
+declare childIcsFile
+
+hasProject "$taskArr"
+
+for taskIndex in "${!taskArr[@]}"; do
+ todo new "$(task _get "${taskArr[$taskIndex]}".description)"
+
+ parentTaskUid=$(ls "$MY_CAL" -tr --time="birth" | tail -n 1 | sed 's/\(.*\)\.ics/\1/')
+
+ annotationNum=1
+ while true; do
+
+ declare task
+
+ task=$(task _get "${taskArr[$taskIndex]}".annotations."$annotationNum".description)
+
+ if [[ "$task" = "" ]]; then
+ break
+ else
+ todo new "$task"
+
+ childIcsFile=$(ls "$MY_CAL" -tr --time="birth" | tail -n 1)
+ sed -i "/END:VTODO/i RELATED-TO;RELTYPE=PARENT:$parentTaskUid" "$MY_CAL/$childIcsFile"
+
+ ((annotationNum++))
+ fi
+
+ done
+
+ task rc.bulk=0 rc.confirmation=off delete "${taskArr[$taskIndex]}"
+done
+
+vdirsyncer sync
diff --git a/lib/edit.sh b/lib/edit.sh
new file mode 100755
index 0000000..be271aa
--- /dev/null
+++ b/lib/edit.sh
@@ -0,0 +1,107 @@
+#!/usr/bin/env bash
+
+#****F* lib/global.sh
+# NAME
+#
+# global.sh - общие функции для всех скриптов.
+#
+# USES
+#
+# - environment.sh
+#******
+
+function getIdsTask() {
+ local nameProject
+
+ nameProject=$(getNameProject "$1")
+
+ readarray -t idsTaskProject < <(task project:"$nameProject" +current _ids)
+ printf '%s\n' "${idsTaskProject[@]}"
+}
+
+function getFileHash() {
+ sha256sum "$1" | awk '{print $1}'
+}
+
+function checkFilesHash() {
+ local originalHash
+ local currentHash
+
+ originalHash=$(getFileHash "/tmp/tskw.edit.bak")
+ currentHash=$(getFileHash "/tmp/tskw.edit")
+
+ if [[ "$originalHash" != "$currentHash" ]]; then
+ readarray -t taskStages < <(grep -v "^#" </tmp/tskw.edit)
+ else
+ notify "msg-gray" "Этапы проекта не были изменены. Выход..."
+ exit 0
+ fi
+}
+
+function backupStages() {
+ cp /tmp/tskw.edit /tmp/tskw.edit.bak
+}
+
+function editStages() {
+ nvim /tmp/tskw.edit &
+ wait
+}
+
+function editStageProject() {
+ local idsTaskProject
+
+ idsTaskProject=$(getIdsTask "$1")
+
+ if [[ -f /tmp/tskw.edit ]]; then
+ : >/tmp/tskw.edit
+ fi
+
+ if [[ "${#tasksProject[@]}" -eq 0 ]]; then
+
+ echo "# Проект без этапов. Эта строка будет проигнорирована." >>/tmp/tskw.edit
+
+ backupStages
+ editStages
+ checkFilesHash
+
+ return 0
+ fi
+
+ for taskID in "${tasksProject[@]}"; do
+ local uuid
+ uuid=$(task _get "$taskID".uuid)
+
+ task _get "$uuid".description >>/tmp/tskw.edit
+ done
+
+ backupStages
+ editStages
+ checkFilesHash
+}
+
+function deleteProject() {
+ local idsTaskProject
+ local nameProject
+
+ idsTaskProject=$(getIdsTask "$1")
+ nameProject=$(getNameProject "$1")
+
+ if [[ "${#idsTaskProject[@]}" -eq 0 ]]; then
+ return
+ else
+ task rc.bulk=0 rc.confirmation=off project:"$nameProject" -COMPLETED -DELETED +current delete
+ fi
+}
+
+function recreateProject() {
+ for taskIndex in "${!taskStages[@]}"; do
+ if [[ "$taskIndex" -eq 0 ]]; then
+ task add "${taskStages[$taskIndex]}" project:"$nameProject" order:$(("$taskIndex" + 2 - 1)) +current
+ else
+ task add "${taskStages[$taskIndex]}" project:"$nameProject" depends:"$uuidNewTask" order:$(("$taskIndex" + 2 - 1)) +current
+ fi
+
+ local uuidNewTask
+ uuidNewTask=$(getLatestTaskUuid)
+ done
+}
diff --git a/lib/environment.sh b/lib/environment.sh
new file mode 100755
index 0000000..00f69e7
--- /dev/null
+++ b/lib/environment.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+# shellcheck disable=SC2016
+
+#****F* lib/environment.sh
+# NAME
+#
+# environment.sh - файл c основными константами и переменными.
+#
+# USED BY
+#
+# - edit_project.sh
+# - jtx.sh
+# - someday.sh
+# - project.sh
+# - start_stop.sh
+#******
+
+# Global
+#
+#****d* environment.sh/ROOT_DIR
+# NAME
+#
+# ROOT_DIR - корень проекта.
+#******
+export ROOT_DIR="$HOME/bin/taskwarrior-tui-scripts"
+
+#****d* environment.sh/LIB_DIR
+# NAME
+#
+# LIB_DIR - папка с вспомогательными функциями.
+#******
+export LIB_DIR="$ROOT_DIR/lib"
+
+#****d* environment.sh/MY_CAL
+# NAME
+#
+# MY_CAL - папка с ics файлами календаря my_cal.
+#
+# NOTES
+#
+# https://baikal.bluig.xyz/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
new file mode 100755
index 0000000..58f8721
--- /dev/null
+++ b/lib/global.sh
@@ -0,0 +1,265 @@
+#!/usr/bin/env bash
+
+#****F* lib/global.sh
+# NAME
+#
+# global.sh - общие функции для всех скриптов.
+#
+# USES
+#
+# - environment.sh
+#******
+
+#****f* global.sh/notify
+# NAME
+#
+# notify - вывод сообщения через notify-send.
+#
+# ARGUMENTS
+#
+# category - категория уведомления.
+# message - строка сообщения.
+#
+# USAGE
+#
+# notify <category> <message>
+#
+# EXAMPLE
+#
+# notify "msg-error" "Ошибка!"
+#
+# NOTES
+#
+# Категории уведомлений находятся в $HOME/.config/mako/category
+#
+# USES
+#
+# - global.sh
+# - project.sh
+# - edit.sh
+# - someday.sh
+# - start_stop.sh
+# - edit_project.sh
+#******
+function notify() {
+ notify-send -t 3000 -a "taskwarrior" -c "$1" "$2"
+}
+
+#****f* global.sh/getLatestTaskId
+# NAME
+#
+# getLatestTaskId - возвращает id задачи.
+#
+# DESCRIPTION
+#
+# Возвращает id задачи с тегом +LATEST, которая является самой последней из добавленных.
+#
+# USES
+#
+# - project.sh
+#
+# NOTES
+#
+# https://taskwarrior.org/docs/tags/
+#
+# RETURN VALUE
+#
+# return {string} - Id задачи
+#******
+function getLatestTaskId() {
+ task +LATEST _id
+}
+
+#****f* global.sh/getLatestTaskUuid
+# NAME
+#
+# getLatestTaskUuid - возвращает id задачи.
+#
+# DESCRIPTION
+#
+# Возвращает uuid задачи с тегом +LATEST, которая является самой последней из добавленных.
+#
+# USES
+#
+# - project.sh
+#
+# NOTES
+#
+# https://taskwarrior.org/docs/tags/
+#
+# RETURN VALUE
+#
+# return {string} - Uuid задачи
+#******
+function getLatestTaskUuid() {
+ task +LATEST _uuid
+}
+
+#****f* global.sh/getTags
+# NAME
+#
+# getTags - возвращает массив тегов задачи.
+#
+# ARGUMENTS
+#
+# id | uuid - id или uuid задачи.
+#
+# USAGE
+#
+# getTags <id | uuid>
+#
+# USES
+#
+# - project.sh
+# - someday.sh
+# - edit_project.sh
+#
+# RETURN VALUE
+#
+# return {Array} - Массив тегов
+#******
+function getTags() {
+ task "$1" export | jq -r '.[].tags? | .[]?'
+}
+
+#****f* global.sh/getNameProject
+# NAME
+#
+# getNameProject - возвращает название проекта задачи.
+#
+# ARGUMENTS
+#
+# id | uuid - id или uuid задачи.
+#
+# USAGE
+#
+# getNameProject <id | uuid>
+#
+# USES
+#
+# - edit.sh
+#
+# RETURN VALUE
+#
+# return {String} - Uuid задачи
+#******
+function getNameProject() {
+ task "$1" _project
+}
+
+#****f* global.sh/getAnnotationCount
+# NAME
+#
+# getAnnotationCount - возвращает длину массива аннотаций задачи.
+#
+# ARGUMENTS
+#
+# id | uuid - id или uuid задачи.
+#
+# USAGE
+#
+# getAnnotationCount <id | uuid>
+#
+# USES
+#
+# - project.sh
+#
+# RETURN VALUE
+#
+# return {String} - Количество аннотаций
+#******
+function getAnnotationCount() {
+ task "$1" export | jq -r '.[] | .annotations | length'
+}
+
+#****f* global.sh/checkExistingProject
+# NAME
+#
+# checkExistingProject - проверка на наличие существующего проекта.
+#
+# ARGUMENTS
+#
+# id | uuid - id или uuid задачи.
+#
+# USAGE
+#
+# checkExistingProject <id | uuid>
+#
+# USES
+#
+# - project.sh
+#******
+function checkExistingProject() {
+ local task
+ local nameNewProject
+
+ task="$1"
+ nameNewProject=$(task _get "$task".description)
+ readarray -t listExistingProjects < <(task _project | grep "$nameNewProject")
+
+ if [[ "${#listExistingProjects[@]}" -ge 1 ]]; then
+ notify "msg-error" "Проект с таким названием уже существует. Выход..."
+ exit 1
+ fi
+}
+
+#****f* global.sh/hasProject
+# NAME
+#
+# hasProject - проверка на наличие проекта у задачи.
+#
+# ARGUMENTS
+#
+# id | uuid - id или uuid задачи.
+#
+# USAGE
+#
+# hasProject <id | uuid>
+#
+# USES
+#
+# - project.sh
+#******
+function hasProject() {
+ local task
+ local hasProject
+
+ task="$1"
+
+ hasProject=$(task "$task" export | jq -r '.[] | .project')
+
+ if [[ ! "$hasProject" == "null" ]]; then
+ clear
+ notify "msg-error" "Одна из выбранных задач имеет проект, выход..."
+ exit 1
+ fi
+}
+
+#****f* global.sh/denotateAllAnnotations
+# NAME
+#
+# denotateAllAnnotations - удаление всех аннотаций у задачи.
+#
+# ARGUMENTS
+#
+# id | uuid - id или uuid задачи.
+#
+# USAGE
+#
+# denotateAllAnnotations <id | uuid>
+#
+# USES
+#
+# - project.sh
+#******
+function denotateAllAnnotations() {
+ local task
+ local countAnnotations
+
+ task="$1"
+ countAnnotations=$(getAnnotationCount "$task")
+
+ for ((i = 0; i < countAnnotations; i++)); do
+ task "$task" denotate
+ done
+}
diff --git a/lib/project.sh b/lib/project.sh
new file mode 100755
index 0000000..03e322f
--- /dev/null
+++ b/lib/project.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+#****F* lib/project.sh
+# NAME
+#
+# project.sh - bash-скрипт для создания проекта в taskwarrior-tui.
+#******
+
+function getProjName() {
+ task _get "$1".description
+}
+
+function getExitCriteria() {
+ task _get "$1".annotations.1.description
+}
+
+function taskCheck() {
+ local task
+
+ task="$1"
+ annotationCount=$(getAnnotationCount "$task")
+
+ case "$annotationCount" in
+ 0)
+ notify "msg-error" "Нет критерия завершения, выход..."
+
+ return 1
+ ;;
+ 1)
+ notify "msg-error" "Нет первого шага у проекта, выход..."
+
+ return 1
+ ;;
+ *)
+ checkExistingProject "$task"
+ hasProject "$task"
+
+ return 0
+ ;;
+ esac
+}
+
+function taskProj() {
+ local task
+ local projName
+ local exitCriteria
+ local idTask
+ local tags
+
+ task="$1"
+ tags=$(getTags "$1")
+ projName=$(getProjName "$1")
+ exitCriteria=$(getExitCriteria "$1")
+
+ readarray -t annotations < <(task "$1" export | jq -r '.[] | .annotations[1:] | .[].description')
+
+ if [[ "$tags" =~ "someday" ]]; then
+ task "$task" modify priority: -someday
+ fi
+
+ task "$task" modify project:"$projName" description:"$exitCriteria"
+
+ denotateAllAnnotations "$task"
+
+ for taskIndex in "${!annotations[@]}"; do
+ if [[ "$taskIndex" -eq 0 ]]; then
+ task add "${annotations[$taskIndex]}" project:"$projName" order:"$((taskIndex + 2))"
+
+ idTask=$(getLatestTaskId)
+
+ continue
+ fi
+
+ task add "${annotations[$taskIndex]}" project:"$projName" order:"$((taskIndex + 2))" depends:"$idTask"
+
+ idTask=$(getLatestTaskId)
+ done
+}
diff --git a/robodoc.rc b/robodoc.rc
new file mode 100644
index 0000000..4c49abb
--- /dev/null
+++ b/robodoc.rc
@@ -0,0 +1,49 @@
+# docs: https://rfsber.home.xs4all.nl/Robo/pages/robodoc-49942-user-manual.html#customizingitems
+items:
+ NAME
+ DESCRIPTION
+ ARGUMENTS
+ USAGE
+ OUTPUTS
+ RETURN VALUE
+ NOTES
+ BUGS
+ EXAMPLE
+ SEE ALSO
+ USES
+ USED BY
+item order:
+ NAME
+ DESCRIPTION
+ ARGUMENTS
+ USAGE
+ RETURN VALUE
+ OUTPUTS
+ EXAMPLE
+ USES
+ USED BY
+ NOTES
+ BUGS
+ SEE ALSO
+source items:
+ USAGE
+ ARGUMENTS
+ EXAMPLE
+ RETURN VALUE
+preformatted items:
+ SEE ALSO
+ NOTES
+options:
+ --src .
+ --doc ./docs
+ --html
+ --charset UTF-8
+ --index
+ --nopre
+ --sections
+ --multidoc
+ --tabsize 2
+headertypes:
+ D "Directories" robo_dirs 1
+ F "Files" robo_files 2
+ignore files:
diff --git a/tskw.sh b/tskw.sh
new file mode 100755
index 0000000..7022868
--- /dev/null
+++ b/tskw.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+set -e
+
+#****h* taskwarrior-tui-scripts/tskw.sh
+# NAME
+#
+# tskw.sh - основной выполняемый скрипт для работы с taskwarrior-tui.
+#
+# DESCRIPTION
+#
+# Входная точка для всех остальных скриптов проекта.
+#
+# NOTES
+#
+# Taskwarrior-tui передает в $@ uuid задач в виде строки с uuid разеделенные пробелами ("uuid1" "uuid2")
+#******
+
+#****D* taskwarrior-tui-scripts/lib
+# NAME
+#
+# lib - папка с вспомогательными функциями.
+#******
+
+source "$HOME/bin/taskwarrior-tui-scripts/lib/environment.sh"
+source "$LIB_DIR/global.sh"
+
+declare action
+declare task
+
+action="$1"
+shift
+
+task="$1"
+
+if [[ "$#" -gt 1 ]]; then
+ notify "msg-error" "Выбрано больше одной задачи. Выход..."
+ exit 1
+fi
+
+case "$action" in
+"project")
+ source "$LIB_DIR/project.sh"
+
+ taskCheck "$task"
+ taskProj "$task"
+ ;;
+"edit_project")
+ "$ROOT_DIR/edit_project.sh" "$task"
+ ;;
+"jtx")
+ "$ROOT_DIR/jtx.sh" "$task"
+ ;;
+*)
+ notify "msg-error" "Неизвестное действие. Выход..."
+ exit 1
+ ;;
+esac