6. Komentoriviliittymä (CLI)
6.1. Johdanto
blunderDB sisältää täydellisen komentoriviliittymän (CLI) samassa suoritettavassa tiedostossa kuin graafinen käyttöliittymä. CLI on erityisen hyödyllinen seuraaviin tarkoituksiin:
ottelujen massatuonti: koko hakemistollinen ottelutiedostoja (XG, SGF, MAT, BGF…) tuodaan yhdellä komennolla,
automaatio: blunderDB:n integrointi shell-skripteihin säännöllisiä varmuuskopioita, ajastettuja vientejä tai käsittelyputkia varten,
palvelinkäyttö: tietokantojen hallinta koneilla, joilla ei ole graafista ympäristöä,
nopea tarkastus: tietokannan sisällön tai eheyden tarkistaminen käynnistämättä graafista käyttöliittymää.
CLI käyttää täsmälleen samaa tietokantamuotoa kuin graafinen käyttöliittymä. Mikä tahansa CLI:llä tehty toimenpide näkyy välittömästi graafisessa käyttöliittymässä ja päinvastoin.
6.2. Yleinen syntaksi
Tila tunnistetaan automaattisesti: jos ensimmäinen argumentti on CLI-komento, blunderDB käynnistyy headless-tilassa, muuten se käynnistää graafisen käyttöliittymän.
# Mode graphique (aucun argument)
./blunderdb
# Mode CLI
./blunderdb <commande> [options]
6.3. Käytettävissä olevat komennot
Komento |
Kuvaus |
|---|---|
create |
Luo uusi tietokanta. |
import |
Tuo tietoja (ottelu, asema, erä). |
export |
Vie tietoja. |
search |
Hae asemia suodattimilla. |
list |
Näytä tietokannan sisältö. |
match |
Näytä ottelun asemat ja analyysit. |
info |
Näytä tietokannan metatiedot. |
edit |
Muokkaa tietokannan metatietoja. |
verify |
Tarkista tietokannan eheys. |
delete |
Poista tietoja. |
help |
Näytä ohje. |
version |
Näytä versio. |
Jokainen komento hyväksyy --help-valitsimen yksityiskohtaisen ohjeen näyttämiseksi.
6.4. create — Luo tietokanta
Luo uusi tietokantatiedosto valinnaisilla metatiedoilla.
./blunderdb create --db <chemin> [--user <nom>] [--description <texte>] [--force]
Valitsimet:
--db— Luotavan tietokantatiedoston polku (pakollinen).--user— Tietokannan omistajan nimi.--description— Tietokannan kuvaus.--force— Korvaa tiedosto, jos se on jo olemassa.
.db-pääte lisätään automaattisesti, jos se puuttuu. Ylähakemistot luodaan tarvittaessa.
Esimerkki:
./blunderdb create --db mes_matchs.db --user "Jean" --description "Matchs de tournoi 2025"
6.5. import — Tuo tietoja
Tuo ottelu- tai asematiedostoja tietokantaan.
./blunderdb import --db <chemin> --type <type> [options]
Valitsimet:
--db— Tietokannan polku (pakollinen).--type— Tuontityyppi:match,positiontaibatch(pakollinen).--file— Tuotava tiedosto (tyypeillematchjaposition).--dir— Tuotava hakemisto (tyypillebatch).--recursive— Selaa alihakemistot rekursiivisesti (oletus: kyllä).
6.5.1. Ottelun tuonti
Tuetut muodot: eXtreme Gammon (.xg, .xgp), GNUbg (.sgf), Jellyfish (.mat, .txt) ja BGBlitz (.bgf).
./blunderdb import --db base.db --type match --file match.xg
6.5.2. Asemien tuonti
Tuo asemia tekstitiedostosta (yksi JSON-asema riviä kohden):
./blunderdb import --db base.db --type position --file positions.txt
6.5.3. Erätuonti
Tuo kaikki hakemiston ottelutiedostot yhdellä toimenpiteellä. Tämä on tehokkain tapa tuoda suuri määrä otteluita.
# 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
Yhteenvetotaulukko näyttää jokaisesta tiedostosta, onnistuiko tuonti (✓), epäonnistuiko se (✗) vai oliko kyseessä kaksoiskappale (⊘).
6.6. export — Vie tietoja
Vie tietokannan sisältö tiedostoihin.
./blunderdb export --db <chemin> --type <type> --file <sortie> [options]
Valitsimet:
--db— Lähdetietokanta (pakollinen).--type— Vientityyppi:database,positionstaimatches(pakollinen).--file— Tulostiedosto (pakollinen).--analysis— Sisällytä analyysit (oletus: kyllä).--comments— Sisällytä kommentit (oletus: kyllä).--filters— Sisällytä suodatinkirjasto (oletus: kyllä).--played-moves— Sisällytä pelatut siirrot (oletus: kyllä).--matches— Sisällytä ottelut (oletus: kyllä).--collections— Sisällytä kokoelmat (oletus: ei).--collection-ids— Vietävien kokoelmien tunnukset (pilkulla eroteltuna).--match-ids— Vietävien otteluiden tunnukset (pilkulla eroteltuna, tyhjä = kaikki).--tournament-ids— Vietävien turnausten tunnukset (pilkulla eroteltuna).
Esimerkkejä:
# 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 — Hae asemia
Hae asemia tietokannasta yhdisteltävien kriteerien avulla.
./blunderdb search --db <chemin> [options]
Pääasialliset valitsimet:
--db— Tietokanta (pakollinen).--format— Tulostusmuoto:table,jsontaixgid(oletus:table).--limit— Tulosten enimmäismäärä (0 = rajoittamaton).--export— Vie tulokset uuteen tietokantaan.
Käytettävissä olevat suodattimet:
--decision— Päätöstyyppi:checkertaicube.--dice— Nopanheitto.5,3hakee asemat, joissa molemmat nopat täsmäävät (järjestyksellä ei ole väliä).5hakee asemat, joissa 5 esiintyy jommassakummassa nopassa (toisen nopan arvo jätetään huomiotta). Sisältää--decision checker, jos--decision-arvoa ei ole annettu.--pip-min/--pip-max— Pip-eron väli.--winrate-min/--winrate-max— Voittoprosentin väli (%).--cube— Tuplauskuution arvo.--score1/--score2— Pelaajien pisteet.--match-length— Ottelun pituus.--error-min— Vähimmäisekvitettivirhe.--move-error-min/--move-error-max— Pelatun siirron virhe (millipistettä).--has-analysis— Vain asemat, joissa on analyysi.--off1-min/--off2-min— Vähimmäismäärä ulospelattuja nappuloita (pelaaja 1/2).--match-ids— Suodata otteluiden tunnusten mukaan (pilkulla eroteltuna).--tournament-ids— Suodata turnausten tunnusten mukaan (pilkulla eroteltuna).
Esimerkkejä:
# 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 — Luettele sisältö
Näytä tietokannan sisältö.
./blunderdb list --db <chemin> --type <type> [--limit <n>]
Tyypit:
matches— Luettelo tuoduista otteluista.positions— Luettelo asemista (oletuksena rajoitettu 10:een).stats— Yleiset tilastot (asemat, analyysit, ottelut, pelit, siirrot).
Esimerkkejä:
# 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 — Näytä ottelu
Näytä tuodun ottelun asemat ja analyysit.
./blunderdb match --db <chemin> --id <id_match> [--format <format>] [--output <fichier>]
Valitsimet:
--db— Tietokanta (pakollinen).--id— Näytettävän ottelun tunnus (pakollinen).--format— Tulostusmuoto:json,texttaisummary(oletus:json).--output— Tulostiedosto (oletus: vakiotuloste).
Esimerkkejä:
# 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 — Tietokannan metatiedot
Näytä tietokannan metatiedot ja tilastot.
./blunderdb info --db <chemin> [--format <format>]
Valitsimet:
--db— Tietokanta (pakollinen).--format— Tulostusmuoto:texttaijson(oletus:text).
Esimerkkejä:
# Afficher les informations
./blunderdb info --db base.db
# Sortie JSON (pour un script)
./blunderdb info --db base.db --format json
6.11. edit — Muokkaa metatietoja
Muokkaa tietokannan käyttäjänimeä tai kuvausta.
./blunderdb edit --db <chemin> [options]
Valitsimet:
--db— Tietokanta (pakollinen).--user— Uusi käyttäjänimi.--description— Uusi kuvaus.--clear-user— Tyhjennä käyttäjänimi.--clear-description— Tyhjennä kuvaus.
Vähintään yksi muokkausvalitsin vaaditaan.
Esimerkkejä:
# 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 — Tarkista eheys
Tarkista tietokannan eheys ja valinnaisesti vertaa ottelua sen lähdetiedostoon.
./blunderdb verify --db <chemin> [--match <id>] [--mat <fichier.mat>]
Valitsimet:
--db— Tietokanta (pakollinen).--match— Tarkistettavan ottelun tunnus.--mat— Verrattava MAT-tiedosto (käytetään yhdessä--match:n kanssa).
Ilman --match-valitsinta komento näyttää tietokannan yleiset tilastot. --match-valitsimen kanssa se tarkistaa ottelun tiedot ja voi verrata niitä alkuperäiseen lähdetiedostoon.
Esimerkkejä:
# 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 — Poista tietoja
Poista ottelu ja kaikki siihen liittyvät tiedot (pelit, siirrot, analyysit).
./blunderdb delete --db <chemin> --type match --id <id> [--confirm]
Valitsimet:
--db— Tietokanta (pakollinen).--type— Poistotyyppi:match(pakollinen).--id— Poistettavan kohteen tunnus (pakollinen).--confirm— Poista pyytämättä vahvistusta.
Esimerkkejä:
# 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. Työnkulkuesimerkkejä
6.14.1. Turnaushakemiston tuonti
# 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. Säännöllinen varmuuskopiointi
# Export complet pour sauvegarde
./blunderdb export --db production.db --type database --file sauvegarde-$(date +%Y%m%d).db
6.14.3. Virheiden analysointi
# 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. Paluukoodit
0— Onnistui.1— Virhe.
Tämä tekee CLI:stä sopivan käytettäväksi skripteissä virheenkäsittelyn kanssa:
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