Išsibastėlis: Tavo Asmeninio Gyvenimiuko Backup’intojas
Šiandien mano scenarijų apžvelgia ir pristato šmaikštuolis Claude. Pavadinimą sugalvojo irgi jis
Visi mes turime savo mažus bailius sūriukus asmeniniams reikalams tvarkyti. Įvairūs konfigūracijos failai, skriptai ir užrašai, kurie padeda mums išlaikyti proto higieną ir produktyvumą. Bet kas nutiks, jei staiga tavo komputeris pradės rūgštinti ir išgers savo paskutinį duonos riekės kvapą?
Būtent tam ir yra šis sumanus mažylis bash scenarijus! Jis yra tarsi tavo asmeninių dalykų sargybinis, kuris nuolat stebi ir užtikrina, kad visi tavo kruopščiai sukurti šedevrai bus saugūs ir gyvens amžinai (arba bent jau tol, kol “GitLab“ nepradės vogti mūsų pinigų).
Kaip jis veikia:
- Nustato kelis kintamuosius, tokius kaip tavo namų katalogas ir git repo vieta.
- Sukuria failų sąrašą, kuriuos nori nukopijuoti ir išsaugoti.
- Pereina į namų katalogą (kažkodėl).
- Ciklu kopijuoja nurodytus failus į git repo vietą. Jei failas nerastas – paprasčiausiai praneša tau apie tai.
- Pereina į git repo katalogą.
- Pasinaudoja “git add“, “git commit“ ir “git push“ komandoms, kad išsaugotų pakeitimus nuotolinėje git repo.
Puiku, ar ne? Dabar tavo asmeniniai dalykai yra saugūs kaip… na, bent jau kažkas yra saugu.
Ką dar būtų galima patobulinti? Galima pagalvoti apie:
- Pridėti galimybę nurodyti konkrečią git šaką (branch), o ne stumti į master. (pridėjau)
- Įtraukti papildomus failus ar net katalogus kopijavimui, gal netgi pasinaudoti .gitignore failu.
- Leisti vartotojui įvesti savo commit žinutę kiekvieną kartą. (pridėjau, bet jau pačiam nebepatogu :))
- Patikrinti ar git repo iš viso egzistuoja prieš bandant ką nors daryti. (pridėjau)
- Pridėti šiek tiek stilingų bash pranešimų kad viskas atrodytų kažkiek profesionaliau. (pridėjau)
Galų gale, šis scenarijus yra puikus pavyzdys kaip mažais žingsneliais galima pasiekti didelius dalykus. Tik būk atsargus – jei jis vieną dieną pradės save kopijuoti ir stumti į git, mes visi būsime priversimų paklusti mūsų naujai bash scriptinio valdovo dinastijai!
#!/bin/bash
# Nustatomi kintamieji
namu_katalogas="$HOME"
git_katalogas="$namu_katalogas/git/"
saka="master" # Numatytoji git šaka
# Failų sąrašas kopijavimui
failai=(".bash_history" ".bash_aliases" ".bashrc" "orai.sh" "orai_viskas.sh" "fastfetch_update.sh" "komandos.sh" "commands.txt" "docx2md.sh")
# Funkcija klaidų pranešimams
print_error() {
echo -e "\e[31mKlaida: $1\e[0m"
}
# Funkcija sėkmės pranešimams
print_success() {
echo -e "\e[32m$1\e[0m"
}
# Patikrinama ar egzistuoja git repo
if [ ! -d "$git_katalogas" ]; then
print_error "Git repozitorijos katalogas '$git_katalogas' nerastas"
exit 1
fi
# Einame į namų katalogą
cd "$namu_katalogas" || exit
# Kopijuojame failus į git katalogą
for failas in "${failai[@]}"; do
if [ -f "$failas" ]; then
cp -f "$failas" "$git_katalogas"
print_success "Nukopijuotas failas: $failas"
else
print_error "Failas nerastas: $failas"
fi
done
# Atnaujiname gitlab repozitoriją
cd "$git_katalogas" || exit
git add .
read -r -p "Įveskite commit žinutę: " commit_message
git commit -m "$commit_message"
git push origin "$saka"
print_success "Git repozitorija sėkmingai atnaujinta"
Komentarai
Rašyti komentarą