Рыба проекта. Минимальная функциональность
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
# Common Skills
|
||||
|
||||
> **Русская версия:** [README.ru.md](README.ru.md)
|
||||
|
||||
Language-agnostic skills applicable across all projects.
|
||||
|
||||
## Available Skills
|
||||
|
||||
| Skill | Description |
|
||||
|-------|-------------|
|
||||
| [common-daemon-cli-skill](common-daemon-cli-skill) | Use this skill whenever you need to implement a system daemon mode in your CLI application. |
|
||||
@@ -0,0 +1,12 @@
|
||||
# Common Skills
|
||||
|
||||
> **English version:** [README.md](README.md)
|
||||
> **Вернуться к оглавлению:** [README.ru.md](../../README.ru.md)
|
||||
|
||||
Языко-независимые скиллы, применимые во всех проектах.
|
||||
|
||||
## Доступные скиллы
|
||||
|
||||
| Скилл | Описание |
|
||||
|-------|----------|
|
||||
| [common-daemon-cli-skill](common-daemon-cli-skill) | Используйте этот скилл, когда необходимо реализовать режим системного демона в CLI-приложении. |
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
name: common-daemon-cli-skill
|
||||
description: Use this skill whenever you need to implement a system daemon mode in your CLI application.
|
||||
---
|
||||
|
||||
# The "daemon" Subcommand
|
||||
|
||||
Every CLI daemon must have a `daemon` subcommand with the following nested subcommands:
|
||||
* logs - view logs of the active daemon
|
||||
* enable - enable the daemon, copy configuration files and the executable itself to system directories
|
||||
* disable - disable the daemon; if executable files or config were copied to a system directory, do not touch them
|
||||
* status - show the daemon's status. Is it enabled? If it crashed, what error? The last 50 lines of logs if it crashed.
|
||||
* env - allows modifying the environment variables with which the daemon runs.
|
||||
* restart - restarts the daemon
|
||||
|
||||
For example:
|
||||
```shell
|
||||
myrootcommand daemon [ enable / disable / logs / status / env ]
|
||||
```
|
||||
|
||||
# Enabling the Daemon
|
||||
|
||||
Enabling the daemon must support the following operating systems:
|
||||
* Linux-based
|
||||
* \+ Systemd
|
||||
* \+ OpenRC
|
||||
* \+ Init.D
|
||||
* FreeBSD
|
||||
* Windows
|
||||
* MacOS
|
||||
|
||||
(The method by which the application is added to autostart is displayed in `status`)
|
||||
|
||||
Enabling includes:
|
||||
* Copying the configuration file and the application executable to a location where the user won't accidentally delete them. For example, to `/var/lib/*` on Linux. If the `--no-copy` flag is provided, copying is skipped and files remain in their original locations.
|
||||
* Adding the application to autostart with the specified config (if there is a config at all)
|
||||
* Storing information somewhere publicly accessible that the daemon is enabled.
|
||||
|
||||
# Disabling
|
||||
|
||||
When disabling, check whether the daemon exists or not.
|
||||
|
||||
If the daemon does not exist, simply inform the user.
|
||||
|
||||
If the daemon is in autostart, remove it from there.
|
||||
|
||||
# Removing Copies
|
||||
|
||||
Removes any copies made during enabling, if they were created.
|
||||
|
||||
Activated by the `--remove` flag.
|
||||
|
||||
In this case, a random number between 1000 and 2000 is generated, which must be entered into an interactive input field to confirm.
|
||||
|
||||
The CLI explicitly and clearly notifies the user about this.
|
||||
|
||||
# Environment Configuration (env)
|
||||
|
||||
Allows editing / adding / deleting the daemon's environment variables.
|
||||
|
||||
Subcommands:
|
||||
* add - adds a new value; overwrites the old one if it exists
|
||||
* remove - removes an environment variable
|
||||
* append - appends to an environment variable using the path separator — for example, on Linux: `$PATH:new_value` and so on.
|
||||
|
||||
```shell
|
||||
myrootcommand daemon env append PATH /path/to/my/external/files
|
||||
myrootcommand daemon restart
|
||||
```
|
||||
Reference in New Issue
Block a user