6. Interfaccia a riga di comando (CLI)
6.1. Introduzione
blunderDB include un’interfaccia a riga di comando (CLI) completa nello stesso eseguibile dell’interfaccia grafica. La CLI è particolarmente utile per:
l’import in massa di match: importare un’intera cartella di file di match (XG, SGF, MAT, BGF…) con un solo comando,
l’automazione: integrare blunderDB in script shell per backup periodici, export pianificati o catene di elaborazione,
l’uso su server: gestire database su macchine prive di ambiente grafico,
l’ispezione rapida: verificare il contenuto o l’integrità di un database senza avviare l’interfaccia grafica.
La CLI condivide esattamente lo stesso formato di database dell’interfaccia grafica. Qualsiasi operazione eseguita tramite la CLI è immediatamente visibile nell’interfaccia grafica e viceversa.
6.2. Sintassi generale
La modalità viene rilevata automaticamente: se il primo argomento è un comando CLI, blunderDB si avvia in modalità headless, altrimenti avvia l’interfaccia grafica.
# Mode graphique (aucun argument)
./blunderdb
# Mode CLI
./blunderdb <commande> [options]
6.3. Comandi disponibili
Comando |
Descrizione |
|---|---|
create |
Crea un nuovo database. |
import |
Importa dati (match, posizione, lotto). |
export |
Esporta dati. |
search |
Cerca posizioni con filtri. |
list |
Mostra il contenuto del database. |
match |
Mostra le posizioni e le analisi di un match. |
info |
Mostra i metadati del database. |
edit |
Modifica i metadati del database. |
verify |
Verifica l’integrità del database. |
delete |
Elimina dati. |
help |
Mostra la guida. |
version |
Mostra la versione. |
Ogni comando accetta l’opzione --help per mostrare la propria guida dettagliata.
6.4. create — Creare un database
Crea un nuovo file di database con metadati opzionali.
./blunderdb create --db <chemin> [--user <nom>] [--description <texte>] [--force]
Opzioni:
--db— Percorso del file di database da creare (obbligatorio).--user— Nome del proprietario del database.--description— Descrizione del database.--force— Sovrascrivere il file se esiste già.
L’estensione .db viene aggiunta automaticamente se assente. Le cartelle superiori vengono create se necessario.
Esempio:
./blunderdb create --db mes_matchs.db --user "Jean" --description "Matchs de tournoi 2025"
6.5. import — Importare dati
Importa file di match o di posizioni nel database.
./blunderdb import --db <chemin> --type <type> [options]
Opzioni:
--db— Percorso del database (obbligatorio).--type— Tipo di import:match,positionobatch(obbligatorio).--file— File da importare (permatcheposition).--dir— Cartella da importare (perbatch).--recursive— Scansionare ricorsivamente le sottocartelle (predefinito: sì).
6.5.1. Import di un match
Formati supportati: eXtreme Gammon (.xg, .xgp), GNUbg (.sgf), Jellyfish (.mat, .txt) e BGBlitz (.bgf).
./blunderdb import --db base.db --type match --file match.xg
6.5.2. Import di posizioni
Importa posizioni da un file di testo (una posizione JSON per riga):
./blunderdb import --db base.db --type position --file positions.txt
6.5.3. Import in lotto
Importa tutti i file di match di una cartella in una sola operazione. È il metodo più efficiente per importare un gran numero di match.
# Import récursif (par défaut)
./blunderdb import --db base.db --type batch --dir ./matchs/
# Import non récursif
./blunderdb import --db base.db --type batch --dir ./matchs/ --recursive=false
Una tabella riepilogativa indica per ogni file se l’import è riuscito (✓), fallito (✗) o se si tratta di un duplicato (⊘).
6.6. export — Esportare dati
Esporta il contenuto del database in file.
./blunderdb export --db <chemin> --type <type> --file <sortie> [options]
Opzioni:
--db— Database di origine (obbligatorio).--type— Tipo di export:database,positionsomatches(obbligatorio).--file— File di output (obbligatorio).--analysis— Includere le analisi (predefinito: sì).--comments— Includere i commenti (predefinito: sì).--filters— Includere la libreria di filtri (predefinito: sì).--played-moves— Includere le mosse giocate (predefinito: sì).--matches— Includere i match (predefinito: sì).--collections— Includere le collezioni (predefinito: no).--collection-ids— ID delle collezioni da esportare (separati da virgole).--match-ids— ID dei match da esportare (separati da virgole, vuoto = tutti).--tournament-ids— ID dei tornei da esportare (separati da virgole).
Esempi:
# Export complet de la base
./blunderdb export --db base.db --type database --file sauvegarde.db
# Export des positions en JSON
./blunderdb export --db base.db --type positions --file positions.txt
# Export de matchs spécifiques
./blunderdb export --db base.db --type matches --file selection.db --match-ids 1,3,5
6.7. search — Cercare posizioni
Cerca posizioni nel database secondo criteri combinabili.
./blunderdb search --db <chemin> [options]
Opzioni principali:
--db— Database (obbligatorio).--format— Formato di output:table,jsonoxgid(predefinito:table).--limit— Numero massimo di risultati (0 = illimitato).--export— Esportare i risultati in un nuovo database.
Filtri disponibili:
--decision— Tipo di decisione:checkerocube.--dice— Lancio dei dadi.5,3cerca le posizioni in cui entrambi i dadi corrispondono (in qualsiasi ordine).5cerca le posizioni in cui un 5 compare su uno dei due dadi (il valore del secondo dado viene ignorato). Implica--decision checkerse non viene fornito alcun valore di--decision.--pip-min/--pip-max— Intervallo di differenza del pip count.--winrate-min/--winrate-max— Intervallo della percentuale di vittoria (%).--cube— Valore del cubo.--score1/--score2— Punteggi dei giocatori.--match-length— Lunghezza del match.--error-min— Errore di equity minimo.--move-error-min/--move-error-max— Errore della mossa giocata (millipunti).--has-analysis— Solo le posizioni con analisi.--off1-min/--off2-min— Pedine uscite minime (giocatore 1/2).--match-ids— Filtrare per ID dei match (separati da virgole).--tournament-ids— Filtrare per ID dei tornei (separati da virgole).
Esempi:
# Rechercher les décisions de videau
./blunderdb search --db base.db --decision cube
# Rechercher les positions avec erreur >= 0.1
./blunderdb search --db base.db --error-min 0.1
# Rechercher dans un tournoi et exporter
./blunderdb search --db base.db --tournament-ids 1 --export cubes.db
# Rechercher les positions avec un lancer de dés 6-5 (peu importe l'ordre)
./blunderdb search --db base.db --dice 6,5
# Rechercher les positions où un 6 a été obtenu sur l'un des deux dés
./blunderdb search --db base.db --dice 6
# Sortie JSON limitée à 10 résultats
./blunderdb search --db base.db --format json --limit 10
6.8. list — Elencare il contenuto
Mostra il contenuto del database.
./blunderdb list --db <chemin> --type <type> [--limit <n>]
Tipi:
matches— Elenco dei match importati.positions— Elenco delle posizioni (limitato a 10 per impostazione predefinita).stats— Statistiche globali (posizioni, analisi, match, partite, mosse).
Esempi:
# Statistiques de la base
./blunderdb list --db base.db --type stats
# Liste des matchs
./blunderdb list --db base.db --type matches
# Premières 20 positions
./blunderdb list --db base.db --type positions --limit 20
6.9. match — Visualizzare un match
Mostra le posizioni e le analisi di un match importato.
./blunderdb match --db <chemin> --id <id_match> [--format <format>] [--output <fichier>]
Opzioni:
--db— Database (obbligatorio).--id— ID del match da visualizzare (obbligatorio).--format— Formato di output:json,textosummary(predefinito:json).--output— File di output (predefinito: output standard).
Esempi:
# Résumé d'un match
./blunderdb match --db base.db --id 1 --format summary
# Détails de chaque position
./blunderdb match --db base.db --id 1 --format text
# Export JSON vers un fichier
./blunderdb match --db base.db --id 1 --output match1.json
6.10. info — Metadati del database
Mostra i metadati e le statistiche di un database.
./blunderdb info --db <chemin> [--format <format>]
Opzioni:
--db— Database (obbligatorio).--format— Formato di output:textojson(predefinito:text).
Esempi:
# Afficher les informations
./blunderdb info --db base.db
# Sortie JSON (pour un script)
./blunderdb info --db base.db --format json
6.11. edit — Modificare i metadati
Modifica il nome utente o la descrizione di un database.
./blunderdb edit --db <chemin> [options]
Opzioni:
--db— Database (obbligatorio).--user— Nuovo nome utente.--description— Nuova descrizione.--clear-user— Cancellare il nome utente.--clear-description— Cancellare la descrizione.
È richiesta almeno un’opzione di modifica.
Esempi:
# Modifier l'utilisateur et la description
./blunderdb edit --db base.db --user "Marie" --description "Ma collection"
# Effacer la description
./blunderdb edit --db base.db --clear-description
6.12. verify — Verificare l’integrità
Verifica l’integrità del database e, facoltativamente, confronta un match con il suo file di origine.
./blunderdb verify --db <chemin> [--match <id>] [--mat <fichier.mat>]
Opzioni:
--db— Database (obbligatorio).--match— ID del match da verificare.--mat— File MAT da confrontare (usato con--match).
Senza l’opzione --match, il comando mostra le statistiche generali del database. Con --match, verifica i dati del match e può confrontarli con il file di origine originale.
Esempi:
# Vérification globale
./blunderdb verify --db base.db
# Vérifier un match spécifique
./blunderdb verify --db base.db --match 1
# Comparer avec le fichier source
./blunderdb verify --db base.db --match 1 --mat original.mat
6.13. delete — Eliminare dati
Elimina un match e tutti i dati associati (partite, mosse, analisi).
./blunderdb delete --db <chemin> --type match --id <id> [--confirm]
Opzioni:
--db— Database (obbligatorio).--type— Tipo di eliminazione:match(obbligatorio).--id— ID dell’elemento da eliminare (obbligatorio).--confirm— Eliminare senza chiedere conferma.
Esempi:
# Supprimer avec confirmation interactive
./blunderdb delete --db base.db --type match --id 1
# Supprimer sans confirmation (pour scripts)
./blunderdb delete --db base.db --type match --id 1 --confirm
6.14. Esempi di flusso di lavoro
6.14.1. Import di una cartella di torneo
# Créer une base dédiée au tournoi
./blunderdb create --db tournoi_paris.db --user "Jean" --description "Open de Paris 2025"
# Importer tous les matchs du répertoire
./blunderdb import --db tournoi_paris.db --type batch --dir ./matchs_open_paris/
# Vérifier le résultat
./blunderdb list --db tournoi_paris.db --type stats
6.14.2. Backup periodico
# Export complet pour sauvegarde
./blunderdb export --db production.db --type database --file sauvegarde-$(date +%Y%m%d).db
6.14.3. Analisi degli errori
# Extraire les blunders dans une base séparée
./blunderdb search --db production.db --error-min 0.1 --export blunders.db
# Extraire les erreurs de videau
./blunderdb search --db production.db --decision cube --error-min 0.05 --export cube_errors.db
6.15. Codici di uscita
0— Successo.1— Errore.
Questo permette di utilizzare la CLI in script con gestione degli errori:
if ./blunderdb import --db base.db --type match --file match.xg; then
echo "Import réussi"
else
echo "Échec de l'import"
exit 1
fi