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.