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
- Git katalogo tikrinimas: Skriptas pradeda veikti nuo nurodymo pereiti į
git
katalogą, kur saugomi visi.sh
failai. - Markdown failo kūrimas: Skriptas sukuria (arba išvalo esamą) tuščią
mano_skriptai.md
failąObsidian
notes kataloge. - 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.
- 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.
- Informacijos išsaugojimas: Visa informacija taip pat išsaugoma
mano_skriptai.md
faile, tinkamai suformatuota, kad būtų patogi peržiūraiObsidian
programoje.
Kaip Naudotis
- Nusikopijuokite skriptą: Nukopijuokite aukščiau pateiktą skriptą į savo tekstinį redaktorių ir išsaugokite jį, pvz., kaip
scan_scripts.sh
. - Pakeiskite katalogų kelią: Įsitikinkite, kad
HOME/git
irHOME/Obsidian/notes
keliai atitinka jūsų sistemos struktūrą. - Suteikite vykdymo teisę: Naudokite komandą
chmod +x scan_scripts.sh
, kad suteiktumėte skriptui vykdymo teisę. - 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
- Dinaminiai katalogai: Pridėti galimybę nurodyti katalogus kaip skripto parametrus, kad būtų lankstesnis naudojimas.
- Papildoma informacija: Išplėsti skriptą, kad būtų galima ištraukti daugiau informacijos iš komentarų, pvz., autorių, sukūrimo datą ir kt.
- Failų tipų palaikymas: Pridėti galimybę tikrinti ir kitų tipų scenarijus, ne tik
.sh
failus. - 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
Rašyti komentarą