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.

 

bash
#!/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