Initial commit
This commit is contained in:
87
tools/gen_license.sh
Executable file
87
tools/gen_license.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure we are in project root
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
# Configuration
|
||||
OUTPUT_BASE="dist/licenses"
|
||||
PYARMOR="./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
|
||||
Reference in New Issue
Block a user