88 lines
2.2 KiB
Bash
Executable File
88 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Ensure we are in project root
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# Configuration
|
|
OUTPUT_BASE="dist/licenses"
|
|
PYARMOR="./venv/bin/python3 ./venv/bin/pyarmor"
|
|
|
|
# Colors (only if terminal supports it, otherwise empty)
|
|
if [ -t 1 ]; then
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
else
|
|
RED=''
|
|
GREEN=''
|
|
BLUE=''
|
|
NC=''
|
|
fi
|
|
|
|
echo "${BLUE}=== Gerador de Licenças IPv0 OLT API ===${NC}"
|
|
|
|
# 1. Solicitar Nome do Cliente
|
|
echo "Nome do Cliente (sem espaços, ex: ProvedorX): "
|
|
read CLIENT_NAME
|
|
if [ -z "$CLIENT_NAME" ]; then
|
|
echo "${RED}Erro: Nome do cliente é obrigatório.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
DEST_DIR="$OUTPUT_BASE/$CLIENT_NAME"
|
|
mkdir -p "$DEST_DIR"
|
|
|
|
# 2. Escolher Tipo de Licença
|
|
echo ""
|
|
echo "Tipo de Licença:"
|
|
echo "1) Data de Expiração (Trial/PoC)"
|
|
echo "2) Hardware (Produção/Machine ID)"
|
|
echo "Opção [1/2]: "
|
|
read OPTION
|
|
|
|
if [ "$OPTION" = "1" ]; then
|
|
# Licença por Data
|
|
echo "Data de Vencimento (YYYY-MM-DD): "
|
|
read EXPIRE_DATE
|
|
# Validação simples de formato YYYY-MM-DD
|
|
if ! echo "$EXPIRE_DATE" | grep -qE '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'; then
|
|
echo "${RED}Erro: Formato de data inválido.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Gerando licença Trial para ${GREEN}$CLIENT_NAME${NC} até ${GREEN}$EXPIRE_DATE${NC}..."
|
|
$PYARMOR gen key -e "$EXPIRE_DATE"
|
|
|
|
elif [ "$OPTION" = "2" ]; then
|
|
# Licença por Hardware
|
|
echo "Machine ID do Cliente: "
|
|
read MACHINE_ID
|
|
if [ -z "$MACHINE_ID" ]; then
|
|
echo "${RED}Erro: Machine ID é obrigatório.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Gerando licença Permanente para ${GREEN}$CLIENT_NAME${NC} (ID: $MACHINE_ID)..."
|
|
$PYARMOR gen key --bind-device "$MACHINE_ID"
|
|
|
|
else
|
|
echo "${RED}Opção inválida.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 3. Mover e Verifica
|
|
# Por padrão, o pyarmor gera em dist/license.key (conforme config outer_keyname)
|
|
GENERATED_FILE="dist/license.key"
|
|
|
|
if [ -f "$GENERATED_FILE" ]; then
|
|
mv "$GENERATED_FILE" "$DEST_DIR/"
|
|
echo ""
|
|
echo "${GREEN}✅ Licença gerada com sucesso!${NC}"
|
|
echo "Arquivo: ${BLUE}$DEST_DIR/license.key${NC}"
|
|
echo "Envie este arquivo para o cliente."
|
|
else
|
|
echo "${RED}❌ Erro: O arquivo de licença não foi gerado.${NC}"
|
|
exit 1
|
|
fi
|