feat: Добавлены функции удаления для роли, плейбука и пресета

- Добавлена команда 'make role delete NAME=role-name'
- Добавлена команда 'make preset delete NAME=preset-name'
- Добавлена команда 'role playbook delete' для удаления playbook
- Обновлены описания команд в help

Новые функции:
- role delete: удаление роли с проверкой существования
- preset delete: удаление пресета с проверкой существования
- playbook delete: удаление playbook из роли

Обновленные списки команд:
- role: list|create|edit|test|lint|deploy|delete|info|playbook
- preset: list|create|edit|test|copy|delete
- playbook: create|list|edit|run|delete

Протестировано:
- Удаление роли - работает корректно
- Удаление пресета - работает корректно
- Все команды проверены и обновлены

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-10-22 17:14:34 +03:00
parent 2d8d770b3f
commit f12bbc626d
2 changed files with 40 additions and 6 deletions

View File

@@ -1348,7 +1348,7 @@ preset-create-interactive: check-whiptail ## Интерактивное созд
echo "$(BLUE)📋 Использование: make lab up PRESET=$$PRESET_NAME$(RESET)"
.PHONY: preset
preset: ## Управление пресетами (list|create|edit|test|copy)
preset: ## Управление пресетами (list|create|edit|test|copy|delete)
@case "$(word 2, $(MAKECMDGOALS))" in \
list) \
echo "Доступные пресеты:"; \
@@ -1413,8 +1413,21 @@ preset: ## Управление пресетами (list|create|edit|test|copy)
echo "$(YELLOW)📋 Копируем пресет: $(SOURCE) -> $(TARGET)$(RESET)"; \
cp molecule/presets/$(SOURCE) molecule/presets/$(TARGET); \
echo "$(GREEN)✅ Пресет скопирован$(RESET)";; \
delete) \
if [ -z "$(NAME)" ]; then \
echo "$(RED)❌ Использование: make preset delete NAME=my-preset$(RESET)"; \
exit 1; \
fi; \
if [ -f "molecule/presets/$(NAME).yml" ]; then \
echo "$(RED)🗑️ Удаляем пресет: $(NAME)$(RESET)"; \
rm -f "molecule/presets/$(NAME).yml"; \
echo "$(GREEN)✅ Пресет $(NAME) удален$(RESET)"; \
else \
echo "$(RED)❌ Пресет $(NAME) не найден$(RESET)"; \
exit 1; \
fi;; \
*) \
echo "Неизвестная команда. Доступные: list, create, edit, test, copy";; \
echo "Неизвестная команда. Доступные: list, create, edit, test, copy, delete";; \
esac
# =============================================================================
@@ -1588,7 +1601,7 @@ role-create-interactive: check-whiptail ## Интерактивное созда
echo "$(BLUE)📋 Playbooks: $(ROLES_DIR)/$$ROLE_NAME/playbooks/$(RESET)"
.PHONY: role
role: ## Управление ролями (list|create|edit|test|lint|deploy)
role: ## Управление ролями (list|create|edit|test|lint|deploy|delete)
@case "$(word 2, $(MAKECMDGOALS))" in \
list) \
echo "Доступные роли:"; \
@@ -1814,11 +1827,33 @@ role: ## Управление ролями (list|create|edit|test|lint|deploy)
else \
echo "$(RED)❌ Playbook $$PLAYBOOK_NAME не найден$(RESET)"; \
fi;; \
delete) \
read -p "$(YELLOW)📝 Имя playbook для удаления: $(RESET)" PLAYBOOK_NAME; \
if [ -f "$(ROLES_DIR)/$(NAME)/playbooks/$$PLAYBOOK_NAME.yml" ]; then \
echo "$(RED)🗑️ Удаляем playbook: $$PLAYBOOK_NAME$(RESET)"; \
rm -f "$(ROLES_DIR)/$(NAME)/playbooks/$$PLAYBOOK_NAME.yml"; \
echo "$(GREEN)✅ Playbook $$PLAYBOOK_NAME удален$(RESET)"; \
else \
echo "$(RED)❌ Playbook $$PLAYBOOK_NAME не найден$(RESET)"; \
fi;; \
*) \
echo "Неизвестная команда playbook";; \
echo "Неизвестная команда playbook. Доступные: create, list, edit, run, delete";; \
esac;; \
delete) \
if [ -z "$(NAME)" ]; then \
echo "$(RED)❌ Использование: make role delete NAME=my-role$(RESET)"; \
exit 1; \
fi; \
if [ -d "$(ROLES_DIR)/$(NAME)" ]; then \
echo "$(RED)🗑️ Удаляем роль: $(NAME)$(RESET)"; \
rm -rf "$(ROLES_DIR)/$(NAME)"; \
echo "$(GREEN)✅ Роль $(NAME) удалена$(RESET)"; \
else \
echo "$(RED)❌ Роль $(NAME) не найдена$(RESET)"; \
exit 1; \
fi;; \
*) \
echo "Неизвестная команда. Доступные: list, create, edit, test, lint, deploy, info, playbook";; \
echo "Неизвестная команда. Доступные: list, create, edit, test, lint, deploy, delete, info, playbook";; \
esac
# =============================================================================

View File

@@ -1 +0,0 @@
[all]