🔧 Restructure scripts and add CLI tool

 New features:
- Add CLI tool for container command execution
- Reorganize all scripts into bin/ directory
- Create convenient wrappers in project root
- Add local changes auto-commit functionality
- Enhanced backup repository management

📁 Structure changes:
- Move all scripts to bin/ directory
- Create wrapper scripts in root (cli, update, start, stop, logs)
- Add setup-backup.sh for backup repository management
- Update documentation with new CLI examples

🛠️ CLI capabilities:
- Django commands (shell, migrate, collectstatic, etc.)
- System commands (bash, logs, status)
- Container management (restart, status)
- Interactive and non-interactive modes

📚 Documentation:
- Updated SCRIPTS_README.md with CLI examples
- Added troubleshooting section
- Comprehensive usage examples
This commit is contained in:
2025-11-25 06:51:52 +09:00
parent bd028d09e6
commit 8f1e0459fc
22 changed files with 618 additions and 64 deletions

View File

@@ -2,9 +2,28 @@
Этот набор скриптов предназначен для автоматизации процессов разработки и развертывания проекта SmartSolTech. Этот набор скриптов предназначен для автоматизации процессов разработки и развертывания проекта SmartSolTech.
## Структура проекта
```
smartsoltech.kr/
├── cli # CLI для работы с контейнером веб-приложения
├── update # Полное обновление проекта
├── start # Быстрый запуск сервисов
├── stop # Остановка сервисов
├── logs # Просмотр логов
└── bin/ # Папка со всеми служебными скриптами
├── cli.sh # CLI скрипт (основной)
├── update.sh # Скрипт обновления (основной)
├── start.sh # Скрипт запуска
├── stop.sh # Скрипт остановки
├── logs.sh # Скрипт логов
├── demo.sh # Демонстрация возможностей
└── setup-backup.sh # Настройка backup репозитория
```
## Доступные скрипты ## Доступные скрипты
### 🚀 `./update.sh` - Полное обновление проекта ### 🚀 `./update` - Полное обновление проекта
Выполняет полный цикл обновления: Выполняет полный цикл обновления:
- Создание бэкапа в удаленном репозитории - Создание бэкапа в удаленном репозитории
- Обновление кода из Git (origin или backup) - Обновление кода из Git (origin или backup)
@@ -17,32 +36,72 @@
**Использование:** **Использование:**
```bash ```bash
./update.sh # Обновление из origin (по умолчанию) ./update # Обновление из origin (по умолчанию)
./update.sh origin # Обновление из origin репозитория ./update origin # Обновление из origin репозитория
./update.sh backup # Обновление из backup репозитория ./update backup # Обновление из backup репозитория
./update.sh origin backup # Обновление из origin с бэкапом в backup ./update origin backup # Обновление из origin с бэкапом в backup
./update.sh backup origin # Обновление из backup с бэкапом в origin ./update backup origin # Обновление из backup с бэкапом в origin
./update.sh --help # Показать справку ./update --help # Показать справку
./update.sh --logs # Показать логи без обновления ./update --logs # Показать логи без обновления
./update.sh --status # Показать статус сервисов ./update --status # Показать статус сервисов
``` ```
**Примеры использования удаленных репозиториев:** **Примеры использования удаленных репозиториев:**
```bash ```bash
# Стандартное обновление из основного репозитория # Стандартное обновление из основного репозитория
./update.sh ./update
# Обновление из резервного репозитория (если основной недоступен) # Обновление из резервного репозитория (если основной недоступен)
./update.sh backup ./update backup
# Обновление из основного репозитория с созданием бэкапа в резервном # Обновление из основного репозитория с созданием бэкапа в резервном
./update.sh origin backup ./update origin backup
# Переключение на резервный сервер с бэкапом в основной # Переключение на резервный сервер с бэкапом в основной
./update.sh backup origin ./update backup origin
``` ```
### ▶️ `./start.sh` - Быстрый запуск ### 💻 `./cli` - CLI для работы с контейнером веб-приложения
Интерфейс командной строки для выполнения команд внутри контейнера Django:
- Django команды (shell, migrate, collectstatic и др.)
- Системные команды (bash, ps, logs)
- Управление контейнером (restart, status)
**Использование:**
```bash
./cli shell # Django shell
./cli bash # Bash в контейнере
./cli migrate # Выполнить миграции
./cli makemigrations # Создать миграции
./cli createsuperuser # Создать суперпользователя
./cli collectstatic # Собрать статические файлы
./cli manage <command> # Произвольная Django команда
./cli exec <command> # Произвольная системная команда
./cli logs [количество_строк] # Логи приложения
./cli status # Статус контейнеров
./cli restart # Перезапуск веб-контейнера
./cli --help # Показать справку
```
**Примеры использования CLI:**
```bash
# Django разработка
./cli shell # Интерактивная оболочка Django
./cli manage showmigrations # Показать статус миграций
./cli dbshell # Подключиться к базе данных
# Системное администрирование
./cli bash # Зайти в контейнер
./cli exec cat /app/requirements.txt # Посмотреть зависимости
./cli ps # Процессы в контейнере
./cli logs 100 # Последние 100 строк логов
# Управление
./cli status # Статус всех сервисов
./cli restart # Перезапуск веб-сервера
```
### ▶️ `./start` - Быстрый запуск
Быстро запускает все сервисы проекта: Быстро запускает все сервисы проекта:
- Запуск Docker контейнеров - Запуск Docker контейнеров
- Проверка статуса сервисов - Проверка статуса сервисов
@@ -50,10 +109,10 @@
**Использование:** **Использование:**
```bash ```bash
./start.sh ./start
``` ```
### ⏹️ `./stop.sh` - Остановка сервисов ### ⏹️ `./stop` - Остановка сервисов
Останавливает сервисы с различными опциями: Останавливает сервисы с различными опциями:
- Простая остановка контейнеров - Простая остановка контейнеров
- Остановка с удалением контейнеров и волюмов - Остановка с удалением контейнеров и волюмов
@@ -61,13 +120,13 @@
**Использование:** **Использование:**
```bash ```bash
./stop.sh # Простая остановка ./stop # Простая остановка
./stop.sh --remove # Остановка + удаление контейнеров и волюмов ./stop --remove # Остановка + удаление контейнеров и волюмов
./stop.sh --clean # Полная очистка (контейнеры + образы + волюмы) ./stop --clean # Полная очистка (контейнеры + образы + волюмы)
./stop.sh --help # Показать справку ./stop --help # Показать справку
``` ```
### 📋 `./logs.sh` - Просмотр логов ### 📋 `./logs` - Просмотр логов
Показывает логи сервисов в реальном времени: Показывает логи сервисов в реальном времени:
- Все логи или конкретного сервиса - Все логи или конкретного сервиса
- Последние N строк логов - Последние N строк логов
@@ -75,14 +134,31 @@
**Использование:** **Использование:**
```bash ```bash
./logs.sh # Все логи в реальном времени ./logs # Все логи в реальном времени
./logs.sh web # Логи только веб-сервера ./logs web # Логи только веб-сервера
./logs.sh db # Логи базы данных ./logs db # Логи базы данных
./logs.sh pgadmin # Логи PgAdmin ./logs pgadmin # Логи PgAdmin
./logs.sh --tail 50 # Последние 50 строк ./logs --tail 50 # Последние 50 строк
./logs.sh --help # Показать справку ./logs --help # Показать справку
``` ```
## Служебные скрипты в папке bin/
### 🛠️ `./bin/setup-backup.sh` - Настройка backup репозитория
Помогает настроить дополнительный удаленный репозиторий для резервного копирования.
**Использование:**
```bash
./bin/setup-backup.sh # Интерактивная настройка
./bin/setup-backup.sh <URL> # Добавить backup репозиторий
./bin/setup-backup.sh <URL> <name> # Добавить с именем
./bin/setup-backup.sh --remove <name> # Удалить backup репозиторий
./bin/setup-backup.sh --list # Показать все репозитории
```
### 🎯 `./bin/demo.sh` - Демонстрация возможностей
Показывает примеры использования всех скриптов и текущий статус проекта.
## Доступные сервисы ## Доступные сервисы
После запуска будут доступны: После запуска будут доступны:
@@ -110,29 +186,57 @@
### Ежедневное обновление ### Ежедневное обновление
```bash ```bash
# Полное обновление с проверкой # Полное обновление с проверкой
./update.sh ./update
# Если что-то пошло не так - смотрим логи # Если что-то пошло не так - смотрим логи
./logs.sh --tail 100 ./logs --tail 100
# Заходим в контейнер для диагностики
./cli bash
``` ```
### Разработка ### Разработка
```bash ```bash
# Запуск для разработки # Запуск для разработки
./start.sh ./start
# Работа с Django
./cli shell # Django shell для тестирования
./cli makemigrations # Создание миграций
./cli migrate # Применение миграций
# Просмотр логов во время разработки # Просмотр логов во время разработки
./logs.sh web ./logs web
# Перезапуск после изменений
./cli restart
# Остановка после работы # Остановка после работы
./stop.sh ./stop
```
### Администрирование
```bash
# Создание суперпользователя
./cli createsuperuser
# Сбор статических файлов
./cli collectstatic
# Проверка состояния
./cli status
./cli logs 50
# Управление контейнером
./cli exec ps aux # Процессы в контейнере
./cli exec df -h # Дисковое пространство
``` ```
### Полная перезагрузка ### Полная перезагрузка
```bash ```bash
# Полная очистка и пересборка # Полная очистка и пересборка
./stop.sh --clean ./stop --clean
./update.sh ./update
``` ```
## Troubleshooting ## Troubleshooting
@@ -140,21 +244,36 @@
### Проблемы с контейнерами ### Проблемы с контейнерами
```bash ```bash
# Проверить статус # Проверить статус
./logs.sh --help ./cli status
docker-compose ps ./logs --help
# Перезапустить проблемный сервис # Перезапустить проблемный сервис
docker-compose restart web ./cli restart
``` ```
### Проблемы с базой данных ### Проблемы с базой данных
```bash ```bash
# Проверить логи БД # Проверить логи БД
./logs.sh db ./logs db
# Зайти в базу данных
./cli dbshell
# Принудительная пересборка # Принудительная пересборка
./stop.sh --remove ./stop --remove
./update.sh ./update
```
### Проблемы с Django
```bash
# Django shell для диагностики
./cli shell
# Проверка миграций
./cli manage showmigrations
# Проверка конфигурации
./cli check
``` ```
### Проблемы с Git ### Проблемы с Git

207
bin/cli.sh Executable file
View File

@@ -0,0 +1,207 @@
#!/bin/bash
# =============================================================================
# SmartSolTech - CLI для выполнения команд в контейнере веб-приложения
# =============================================================================
set -e
# Цвета для вывода
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
CYAN='\033[0;36m'
NC='\033[0m'
log() {
echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
}
success() {
echo -e "${GREEN}$1${NC}"
}
warning() {
echo -e "${YELLOW}⚠️ $1${NC}"
}
error() {
echo -e "${RED}$1${NC}"
}
info() {
echo -e "${CYAN} $1${NC}"
}
# Имя контейнера Django
CONTAINER_NAME="django_app"
# Проверка что контейнер запущен
check_container() {
if ! docker ps --format "table {{.Names}}" | grep -q "^${CONTAINER_NAME}$"; then
error "Контейнер $CONTAINER_NAME не запущен"
warning "Запустите сервисы командой: ./bin/start.sh"
return 1
fi
}
# Выполнение команды в контейнере
run_in_container() {
local cmd="$*"
log "Выполнение в контейнере: $cmd"
docker exec -it $CONTAINER_NAME $cmd
}
# Выполнение Django команды
run_django_command() {
local django_cmd="$*"
run_in_container python smartsoltech/manage.py $django_cmd
}
# Выполнение команды без интерактивности
run_in_container_quiet() {
local cmd="$*"
docker exec $CONTAINER_NAME $cmd
}
# Django команды без интерактивности
run_django_command_quiet() {
local django_cmd="$*"
run_in_container_quiet python smartsoltech/manage.py $django_cmd
}
# Показать справку
show_help() {
echo "SmartSolTech CLI - Выполнение команд в контейнере веб-приложения"
echo ""
echo "Использование:"
echo " $0 <команда> [аргументы...]"
echo ""
echo "Django команды:"
echo " $0 shell # Django shell"
echo " $0 dbshell # Database shell"
echo " $0 migrate # Выполнить миграции"
echo " $0 makemigrations # Создать миграции"
echo " $0 collectstatic # Собрать статические файлы"
echo " $0 createsuperuser # Создать суперпользователя"
echo " $0 check # Проверка проекта"
echo " $0 runserver # Запуск dev сервера"
echo ""
echo "Системные команды:"
echo " $0 bash # Bash оболочка в контейнере"
echo " $0 sh # Sh оболочка в контейнере"
echo " $0 ps # Список процессов в контейнере"
echo " $0 logs [lines] # Логи приложения (по умолчанию 50 строк)"
echo ""
echo "Пользовательские команды:"
echo " $0 manage <django_command> # Произвольная Django команда"
echo " $0 exec <system_command> # Произвольная системная команда"
echo ""
echo "Специальные команды:"
echo " $0 status # Статус контейнеров"
echo " $0 restart # Перезапуск веб-контейнера"
echo " $0 --help # Показать эту справку"
echo ""
echo "Примеры:"
echo " $0 shell # Django shell"
echo " $0 manage showmigrations # Показать статус миграций"
echo " $0 exec cat /app/requirements.txt # Показать зависимости"
echo " $0 logs 100 # Последние 100 строк логов"
echo ""
}
# Проверка параметров и выполнение команд
case "${1:-}" in
--help|-h|help)
show_help
exit 0
;;
# Django команды
shell|dbshell|migrate|makemigrations|collectstatic|createsuperuser|check|runserver)
check_container
run_django_command "$@"
;;
# Системные команды
bash|sh)
check_container
run_in_container "$@"
;;
ps)
check_container
run_in_container_quiet ps aux
;;
logs)
check_container
lines="${2:-50}"
info "Показываем последние $lines строк логов..."
docker logs --tail=$lines $CONTAINER_NAME
;;
# Пользовательские команды
manage)
check_container
shift # убираем 'manage' из аргументов
run_django_command "$@"
;;
exec)
check_container
shift # убираем 'exec' из аргументов
run_in_container "$@"
;;
# Специальные команды
status)
echo ""
info "Статус контейнеров:"
docker-compose ps
echo ""
if docker ps --format "table {{.Names}}" | grep -q "^${CONTAINER_NAME}$"; then
success "Веб-контейнер $CONTAINER_NAME запущен"
info "Процессы в контейнере:"
docker exec $CONTAINER_NAME ps aux | head -10
else
warning "Веб-контейнер $CONTAINER_NAME не запущен"
fi
;;
restart)
log "Перезапуск веб-контейнера..."
docker-compose restart web
success "Веб-контейнер перезапущен"
;;
"")
error "Не указана команда"
echo ""
echo "Используйте '$0 --help' для справки"
echo ""
echo "Быстрые команды:"
echo " $0 shell # Django shell"
echo " $0 bash # Bash в контейнере"
echo " $0 status # Статус сервисов"
exit 1
;;
*)
# Пробуем выполнить как Django команду
check_container
log "Попытка выполнить как Django команду: $*"
if run_django_command_quiet help "$1" >/dev/null 2>&1; then
run_django_command "$@"
else
error "Неизвестная команда: $1"
echo ""
echo "Попробуйте:"
echo " $0 --help # Полная справка"
echo " $0 manage help # Список Django команд"
echo " $0 exec $* # Выполнить как системную команду"
exit 1
fi
;;
esac

45
bin/demo.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/bin/bash
# =============================================================================
# SmartSolTech - Пример использования скриптов обновления
# =============================================================================
echo "🚀 Демонстрация скриптов управления SmartSolTech"
echo "=============================================="
echo ""
echo "📋 Доступные удаленные репозитории:"
git remote -v
echo ""
echo "📊 Текущий статус проекта:"
./update.sh --status
echo ""
echo "💡 Примеры команд обновления:"
echo ""
echo " # Стандартное обновление из основного репозитория"
echo " ./update.sh"
echo ""
echo " # Обновление из резервного репозитория"
echo " ./update.sh backup"
echo ""
echo " # Обновление из основного с созданием бэкапа в резервном"
echo " ./update.sh origin backup"
echo ""
echo " # Обновление из резервного с бэкапом в основной"
echo " ./update.sh backup origin"
echo ""
echo "🛠️ Другие полезные команды:"
echo ""
echo " ./start.sh # Быстрый запуск сервисов"
echo " ./stop.sh # Остановка сервисов"
echo " ./stop.sh --clean # Полная очистка"
echo " ./logs.sh # Просмотр логов"
echo " ./logs.sh web # Логи веб-сервера"
echo ""
echo "📚 Полная документация: cat SCRIPTS_README.md"
echo ""
echo "✅ Готово!"

157
bin/setup-backup.sh Executable file
View File

@@ -0,0 +1,157 @@
#!/bin/bash
# =============================================================================
# SmartSolTech - Настройка резервного репозитория
# =============================================================================
set -e
# Цвета для вывода
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'
log() {
echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
}
success() {
echo -e "${GREEN}$1${NC}"
}
warning() {
echo -e "${YELLOW}⚠️ $1${NC}"
}
error() {
echo -e "${RED}$1${NC}"
}
echo ""
echo "🔧 SmartSolTech - Настройка backup репозитория"
echo "=============================================="
echo ""
# Проверка что мы в Git репозитории
if [ ! -d ".git" ]; then
error "Не найден Git репозиторий. Запустите скрипт из корня проекта."
exit 1
fi
# Показать текущие репозитории
log "Текущие удаленные репозитории:"
git remote -v
echo ""
# Функция добавления нового backup репозитория
add_backup_repo() {
local repo_url="$1"
local repo_name="${2:-backup}"
log "Добавление backup репозитория..."
# Проверяем не существует ли уже такой remote
if git remote | grep -q "^${repo_name}$"; then
warning "Репозиторий $repo_name уже существует"
git remote -v | grep "^${repo_name}"
read -p "Заменить? (y/N): " replace_choice
if [[ $replace_choice =~ ^[Yy]$ ]]; then
git remote remove $repo_name
else
return 0
fi
fi
# Добавляем новый remote
if git remote add $repo_name "$repo_url"; then
success "Backup репозиторий $repo_name добавлен"
# Проверяем подключение
log "Проверка подключения..."
if git ls-remote $repo_name > /dev/null 2>&1; then
success "Подключение к $repo_name работает"
# Предлагаем сделать первый push
read -p "Отправить текущее состояние в backup? (y/N): " push_choice
if [[ $push_choice =~ ^[Yy]$ ]]; then
git push $repo_name master
success "Backup создан в $repo_name"
fi
else
error "Не удалось подключиться к $repo_name"
git remote remove $repo_name
return 1
fi
else
error "Не удалось добавить backup репозиторий"
return 1
fi
}
# Обработка параметров
case "${1:-}" in
--help|-h)
echo "Использование:"
echo " $0 # Интерактивная настройка"
echo " $0 <URL> # Добавить backup репозиторий"
echo " $0 <URL> <name> # Добавить с именем"
echo " $0 --remove <name> # Удалить backup репозиторий"
echo " $0 --list # Показать все репозитории"
echo ""
echo "Примеры:"
echo " $0 git@github.com:user/backup.git"
echo " $0 git@server.com:backup.git mybkp"
echo " $0 --remove backup"
echo ""
exit 0
;;
--list)
log "Все удаленные репозитории:"
git remote -v
exit 0
;;
--remove)
if [ -z "$2" ]; then
error "Укажите имя репозитория для удаления"
exit 1
fi
log "Удаление репозитория $2..."
if git remote remove "$2"; then
success "Репозиторий $2 удален"
else
error "Не удалось удалить репозиторий $2"
fi
exit 0
;;
"")
# Интерактивный режим
echo "💡 Примеры URL репозиториев:"
echo " git@github.com:username/repo-backup.git"
echo " ssh://git@server.com:2222/user/backup.git"
echo " https://github.com/username/repo-backup.git"
echo ""
read -p "Введите URL backup репозитория: " repo_url
if [ -z "$repo_url" ]; then
warning "URL не указан, выход"
exit 0
fi
read -p "Введите имя (backup): " repo_name
repo_name="${repo_name:-backup}"
add_backup_repo "$repo_url" "$repo_name"
;;
*)
# URL передан как параметр
add_backup_repo "$1" "$2"
;;
esac
echo ""
log "Обновленный список репозиториев:"
git remote -v
echo ""
success "Готово!"

View File

@@ -64,7 +64,29 @@ cleanup_staticfiles() {
fi fi
} }
# Функция обновления кода # Функция сохранения локальных изменений
save_local_changes() {
log "Проверка локальных изменений..."
# Проверяем есть ли изменения в рабочей директории или индексе
if [ -n "$(git status --porcelain)" ]; then
warning "Обнаружены локальные изменения, сохраняем в коммит..."
# Добавляем все изменения
git add .
# Создаем коммит с временной меткой
local commit_msg="Auto commit before update $(date '+%Y-%m-%d %H:%M:%S')"
if git commit -m "$commit_msg"; then
success "Локальные изменения сохранены в коммит"
log "Коммит: $commit_msg"
else
warning "Не удалось создать коммит (возможно нет изменений для коммита)"
fi
else
log "Локальных изменений не обнаружено"
fi
}
update_code() { update_code() {
local remote_name="${1:-origin}" local remote_name="${1:-origin}"
log "Обновление кода из репозитория $remote_name..." log "Обновление кода из репозитория $remote_name..."
@@ -83,13 +105,6 @@ update_code() {
git config pull.rebase false git config pull.rebase false
fi fi
# Сохраняем неотслеживаемые изменения
if [ -n "$(git status --porcelain)" ]; then
warning "Обнаружены локальные изменения, сохраняем..."
git add .
git commit -m "Auto commit before update $(date '+%Y-%m-%d %H:%M:%S')" || true
fi
# Получаем обновления # Получаем обновления
log "Получение обновлений из $remote_name..." log "Получение обновлений из $remote_name..."
git fetch $remote_name git fetch $remote_name
@@ -219,23 +234,25 @@ show_logs() {
# Функция бэкапа в удаленный репозиторий # Функция бэкапа в удаленный репозиторий
backup_to_remote() { backup_to_remote() {
local backup_remote="${1:-backup}" local backup_remote="${1:-backup}"
# Пропускаем если это тот же репозиторий что используется для обновления
local update_remote="${2:-origin}"
if [ "$backup_remote" = "$update_remote" ]; then
log "Пропускаем бэкап - используется тот же репозиторий для обновления"
return 0
fi
log "Создание бэкапа в удаленном репозитории $backup_remote..." log "Создание бэкапа в удаленном репозитории $backup_remote..."
if git remote | grep -q "^${backup_remote}$"; then if git remote | grep -q "^${backup_remote}$"; then
# Проверяем есть ли изменения для коммита # Пушим текущее состояние в backup (изменения уже сохранены в коммит)
if ! git diff --quiet || ! git diff --cached --quiet; then
git add .
git commit -m "Auto backup before update $(date '+%Y-%m-%d %H:%M:%S')"
fi
# Пушим в backup
if git push $backup_remote master; then if git push $backup_remote master; then
success "Бэкап создан в удаленном репозитории $backup_remote" success "Бэкап создан в удаленном репозитории $backup_remote"
else else
warning "Не удалось создать бэкап в $backup_remote" warning "Не удалось создать бэкап в $backup_remote"
fi fi
else else
warning "$backup_remote репозиторий не настроен, пропускаем" warning "$backup_remote репозиторий не настроен, пропускаем бэкап"
fi fi
} }
@@ -264,7 +281,8 @@ main() {
# Выполняем все этапы # Выполняем все этапы
check_dependencies check_dependencies
backup_to_remote "$backup_remote" save_local_changes
backup_to_remote "$backup_remote" "$remote_source"
cleanup_staticfiles cleanup_staticfiles
update_code "$remote_source" update_code "$remote_source"
stop_containers stop_containers

3
cli Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
# SmartSolTech CLI wrapper
exec ./bin/cli.sh "$@"

3
logs Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
# SmartSolTech logs wrapper
exec ./bin/logs.sh "$@"

View File

@@ -1 +0,0 @@
{"detail":"User 4 deleted"}

View File

@@ -1 +0,0 @@
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0Iiwicm9sZSI6InVzZXIiLCJleHAiOjE3NTI0OTc2NDV9.S_tquLFIPnyG6XlfwIw97hJv0l9oKpTcYw_XG0mDd6w","token_type":"bearer"}

View File

@@ -1 +0,0 @@
{"id":4,"email":"testuser@example.com","role":"user"}

View File

@@ -1 +0,0 @@
{"id":4,"email":"testuser@example.com","role":"user"}

View File

@@ -1 +0,0 @@
{"id":4,"email":"updated_testuser@example.com","role":"admin"}

View File

@@ -1 +0,0 @@
{"id":4,"email":"testuser@example.com","role":"user"}

View File

@@ -1 +0,0 @@
[{"id":1,"email":"user1@example.com","role":"user"},{"id":4,"email":"testuser@example.com","role":"user"}]

3
start Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
# SmartSolTech start wrapper
exec ./bin/start.sh "$@"

3
stop Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
# SmartSolTech stop wrapper
exec ./bin/stop.sh "$@"

3
update Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
# SmartSolTech update wrapper
exec ./bin/update.sh "$@"