Skriptų dokumentavimas

 

Įvadas

Norėdamas pagerinti savo darbo efektyvumą ir sutaupyti laiko, sukūriau automatizuotą bash scenarijų, kuris padeda valdyti, tikrinti ir dokumentuoti kitus scenarijus. Šis scenarijus skirtas automatizuotai nuskenuoti visus .sh failus mano git kataloge, patikrinti jų aprašymus, URL ir naudojimą .bashrc ir .bash_aliases failuose, o rezultatus pateikti terminale ir išsaugoti Markdown formatu, kad galėčiau juos peržiūrėti Obsidian programoje.

 


#!/bin/bash
# Description: Scenarijus, kuris rodo visus mano naudojamus scenarijus su aprašymais, web nuorodomis ir sąsaja su bashrc ir bash_aliases
# URL: 
 
# Keičiame į git katalogą
cd "$HOME/git" || exit
 
# Sukuriame tuščią failą mano_skriptai.md
: > "$HOME/Obsidian/notes/mano_skriptai.md"
 
# ANSI spalvų kodai
RED='\033[1;31m'
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
 
# Ieškome .sh failų
for file in *.sh; do
    # Ištraukiame scenarijaus pavadinimą
    script_name=$(basename "$file")
 
    # Ištraukiame aprašymą ir URL iš komentarų
    description=$(grep -m 1 "^# Description:" "$file" | cut -d ':' -f 2- | sed 's/^[[:space:]]*//')
    url=$(grep -m 1 "^# URL:" "$file" | cut -d ':' -f 2- | sed 's/^[[:space:]]*//')
 
    # Patikrinama, ar scenarijus naudojamas .bashrc
    if grep -q "$script_name" "$HOME/.bashrc"; then
        bashrc_usage="Naudojamas"
        bashrc_usage_color="$GREEN"
    else
        bashrc_usage="Nenaudojamas"
        bashrc_usage_color="$RED"
    fi
 
    # Patikrinama, ar scenarijus naudojamas .bash_aliases
    alias_usage=$(grep "^alias[[:space:]]\+[^=]*=.*$script_name" "$HOME/.bash_aliases" | sed "s/^alias[[:space:]]\+\([^=]*\)=.*/\1/")
    if [ -z "$alias_usage" ]; then
        alias_usage="Nenaudojamas"
        alias_usage_color="$RED"
    else
        alias_usage_color="$GREEN"
    fi
 
    # Išvedame informaciją į terminalą
    echo -e "scenarijaus pavadinimas: ${YELLOW}$script_name${NC}"
    if [ -n "$description" ]; then
        echo -e "# Description: ${GREEN}$description${NC}"
    else
        echo -e "# Description: ${RED}Aprašas nerastas${NC}"
    fi
    if [ -n "$url" ]; then
        echo -e "# URL: ${GREEN}$url${NC}"
    else
        echo -e "# URL: ${RED}URL nerastas${NC}"
    fi
    echo -e "# .bashrc: ${bashrc_usage_color}$bashrc_usage${NC}"
    if [ "$alias_usage" != "Nenaudojamas" ]; then
        echo -e "# .bash_aliases: ${GREEN}$alias_usage${NC}"
    else
        echo -e "# .bash_aliases: ${RED}Nenaudojamas${NC}"
    fi
    echo "––––––––––––––––––"
 
    # Išsaugome informaciją į failą
    echo "scenarijaus pavadinimas: $script_name" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    if [ -n "$description" ]; then
        echo "\# Description: $description" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    else
        echo "\# Description: Aprašas nerastas" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    fi
    if [ -n "$url" ]; then
        echo "\# URL: $url" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    else
        echo "\# URL: URL nerastas" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    fi
    echo "\# .bashrc: $bashrc_usage" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    if [ "$alias_usage" != "Nenaudojamas" ]; then
        echo "\# .bash_aliases: $alias_usage" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    else
        echo "\# .bash_aliases: Nenaudojamas" >> "$HOME/Obsidian/notes/mano_skriptai.md"
    fi
    echo "––––––––––––––––––" >> "$HOME/Obsidian/notes/mano_skriptai.md"
done

Kaip veikia

Pagrindinės funkcijos

  1. Git katalogo tikrinimas: Skriptas pradeda veikti nuo nurodymo pereiti į git katalogą, kur saugomi visi .sh failai.
  2. Markdown failo kūrimas: Skriptas sukuria (arba išvalo esamą) tuščią mano_skriptai.md failą Obsidian notes kataloge.
  3. Scenarijų nuskaitymas: Kiekvienam .sh failui kataloge skriptas:
    • Nuskaito failo pavadinimą.
    • Ištraukia aprašymą ir URL iš komentarų.
    • Patikrina, ar failas naudojamas .bashrc ir .bash_aliases failuose.
  4. Informacijos išvedimas: Visa surinkta informacija išvedama į terminalą spalvotai:
    • Geltona spalva: Scenarijaus pavadinimas.
    • Žalia spalva: Reikšmės, kurios rastos ar naudojamos.
    • Raudona spalva: Reikšmės, kurios nerastos ar nenaudojamos.
  5. Informacijos išsaugojimas: Visa informacija taip pat išsaugoma mano_skriptai.md faile, tinkamai suformatuota, kad būtų patogi peržiūrai Obsidian programoje.

Kaip Naudotis

  1. Nusikopijuokite skriptą: Nukopijuokite aukščiau pateiktą skriptą į savo tekstinį redaktorių ir išsaugokite jį, pvz., kaip scan_scripts.sh.
  2. Pakeiskite katalogų kelią: Įsitikinkite, kad HOME/git ir HOME/Obsidian/notes keliai atitinka jūsų sistemos struktūrą.
  3. Suteikite vykdymo teisę: Naudokite komandą chmod +x scan_scripts.sh, kad suteiktumėte skriptui vykdymo teisę.
  4. Paleiskite Skriptą: Paleiskite skriptą naudodami komandą ./scan_scripts.sh.

Privalumai

  • Automatizavimas: Scenarijus labai sutaupo laiką, automatizuodamas scenarijų tikrinimą ir dokumentavimą.
  • Aiški dokumentacija: Visa informacija išsaugoma aiškiai ir tvarkingai, kas yra labai naudinga, kai turiu daug skirtingų scenarijų.
  • Spalvotas išvedimas: Tai padeda greitai suprasti, kurie scenarijai yra naudojami ar turi aprašymus, ir kurie ne.
  • Suderinamumas su Obsidian: Informacija yra išsaugoma tokiu formatu, kad būtų patogu naudotis Obsidian programoje.

Trūkumai

  • Statinis kelias: Skriptas yra priklausomas nuo specifinių katalogų, kuriuos reikia koreguoti rankiniu būdu.
  • Tik .sh failai: Skriptas tikrina tik .sh failus. Jei turiu kitų tipų scenarijų, juos reikės pritaikyti atskirai.
  • Ribota informacija: Skriptas ištraukia tik pirmą aprašymą ir URL iš failo komentarų. Jei failas turi daugiau informacijos, ji bus praleista.

Ką galima papildyti ir pakeisti

  1. Dinaminiai katalogai: Pridėti galimybę nurodyti katalogus kaip skripto parametrus, kad būtų lankstesnis naudojimas.
  2. Papildoma informacija: Išplėsti skriptą, kad būtų galima ištraukti daugiau informacijos iš komentarų, pvz., autorių, sukūrimo datą ir kt.
  3. Failų tipų palaikymas: Pridėti galimybę tikrinti ir kitų tipų scenarijus, ne tik .sh failus.
  4. Paieška subkataloguose: Pridėti rekursyvią paiešką subkataloguose, kad būtų tikrinami visi scenarijai visame git kataloge.

Išvada

Šis shell skriptas yra paprastas, bet galingas įrankis scenarijų tikrinimui ir dokumentavimui. Jis padeda greitai rasti ir identifikuoti naudojamus scenarijus, pateikia informaciją patogiu formatu ir suteikia galimybę lengvai peržiūrėti informaciją naudojant Obsidian programą. Naudodamiesi šiuo įrankiu, galiu efektyviau valdyti savo scenarijus ir palaikyti tvarką savo sistemoje.

Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Monitoring SFTP server updates with Python