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, position tai batch (pakollinen).

  • --file — Tuotava tiedosto (tyypeille match ja position).

  • --dir — Tuotava hakemisto (tyypille batch).

  • --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, positions tai matches (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, json tai xgid (oletus: table).

  • --limit — Tulosten enimmäismäärä (0 = rajoittamaton).

  • --export — Vie tulokset uuteen tietokantaan.

Käytettävissä olevat suodattimet:

  • --decision — Päätöstyyppi: checker tai cube.

  • --dice — Nopanheitto. 5,3 hakee asemat, joissa molemmat nopat täsmäävät (järjestyksellä ei ole väliä). 5 hakee 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, text tai summary (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: text tai json (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