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:

  1. Nustato kelis kintamuosius, tokius kaip tavo namų katalogas ir git repo vieta.
  2. Sukuria failų sąrašą, kuriuos nori nukopijuoti ir išsaugoti.
  3. Pereina į namų katalogą (kažkodėl).
  4. Ciklu kopijuoja nurodytus failus į git repo vietą. Jei failas nerastas – paprasčiausiai praneša tau apie tai.
  5. Pereina į git repo katalogą.
  6. 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

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