Hyppää sisältöön

Automaatioskripti: Kansiorakenteen luonti

Tämä sivu dokumentoi menetelmän, jolla DevSecOps-projektin laaja kansiorakenne (Scenes ja Journal) luotiin systemaattisesti Bash-automaation avulla.

Ongelman kuvaus

Projektin monitasoinen rakenne (4 Sceneä, useita Phase-vaiheita ja kymmeniä teknologia-alikansioita) on altis inhimillisille virheille, jos se luodaan käsin. Lisäksi jokainen kansio vaatii index.md-tiedoston, jotta MkDocs tunnistaa ne osaksi sivustoa.

Tekninen toteutus

Skripti käyttää mkdir -p -komentoa (parent directories) ja Bashin aaltosulku-laajennusta ({}) tehokkaaseen massaluontiin.

    #!/bin/bash

    # 1. Luodaan Scenes-rakenteen perusrunko
    mkdir -p docs/scenes/{prologue,script,suspense,finale}

    # 2. Luodaan teknologia-alikansiot teknologia-pinoittain
    # Esimerkki: Scene I (Prologue) alikansiot
    mkdir -p docs/scenes/prologue/phase-2/{python,javascript-typescript,go,data-formats}
    mkdir -p docs/scenes/prologue/phase-3/{owasp,docker-basics,cloud-basics}

    # 3. Luodaan vastaava peilikuvasto Journal-kansioon
    mkdir -p docs/journal/{prologue,script,suspense,finale}

    # 4. Automatisoidaan index.md -tiedostojen luonti jokaiseen kansioon
    # find etsii kaikki hakemistot ja luo niihin tyhjän index.md:n
    find docs/scenes docs/journal -type d -exec touch {}/index.md \;

Keskeiset mekanismit

  • mkdir -p: Luo koko polun kerralla, vaikka välikansioita ei olisi olemassa.
  • Aaltosulku-laajennus {a,b,c}: Mahdollistaa useiden kansioiden luomisen yhdellä komennolla (esim. phase-{1..3}).
  • find -type d -exec: Etsii kaikki alikansiot ja suorittaa niille komennon. Tämä varmistaa, ettei MkDocs-sivustolle jää "pimeitä kohtia" (kansioita ilman index-tiedostoa).

Hyödyt

  • Toistettavuus: Rakenteen voi luoda uudelleen tyhjään ympäristöön sekunneissa.
  • Yhdenmukaisuus: scenes- ja journal-kansiot pysyvät täydellisinä peilikuvina toisistaan.
  • Skaalautuvuus: Uusien teknologioiden lisääminen on vain yhden sulkulausekkeen lisäämisen takana.