Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- ## Proměnné. Některé budou redefinovány souborem s překladem do vašeho jazyka
- TC="To clean"
- TD="To remove"
- RT="\e[1;31mERROR: \e[00mAre you root?"
- SC="A simple system logs cleaner"
- PR="Preview "
- CL="Clean "
- HL="Help "
- QT="Quit "
- UG="Usage"
- CG="Cleaning"
- RM="Removing"
- CD="Cleaned"
- RD="Removed"
- OP="option"
- OF="Option Function"
- KF="Key Function"
- PP="Print files to clean and remove"
- CC="Remove old or archived logs and cleans syslogs"
- HH="Print help"
- AA="About "
- KK="Invalid option"
- IM="Interactive mode"
- BB="Without option $IM"
- NM="Noninteractive mode"
- HK=" For help press H"
- MA="Manual"
- LE=" License"
- PT=/usr/share/kremator
- ## Mezery
- M1=" "
- M2=" "
- ## Formátování, cesty...
- Z="\e[00m"
- U="\e[1m"
- W="\e[1;33m"
- V=$PT/LANG
- T="Kremator 1.2.1"
- S=/var/log
- R="\e[97;100m"
- E=/tmp/kremator
- ## Nastaví jazyk programu. Pokud neexistuje překlad, použije se angličtina
- if [ -f "$V/$LANG" ]
- then source "$V/$LANG"
- fi
- ## Titulek okna
- echo -e '\033]2;'$T'\007'
- ## Popis
- J="\n\t$M2$U$T$Z - $SC$Z"
- ## Vyhledávač souborů
- SF() {
- find $S -follow -type f -name "*[1-9]*" -o -name "*.gz*" -o -name "*.old*" -o -name "*~" -o -name "*.svg" -o -name "*.png"
- }
- ## Překlad mezera > nový řádek
- SE() {
- sed -e 's: :\n:g'
- }
- ## Hlavička interaktivního režimu
- IH() {
- clear; printf "\e[1;100;36m $T $Z$R$M1$W P$Z$R $PR $W C$Z$R $CL $W H$Z$R $HL $W A$Z$R $AA $W Q$Z$R $QT $Z\n"
- }
- ## Hlavička neinteraktivního režimu
- NH() {
- printf "\n$T\n"
- }
- ## Filtr přípon
- SD() {
- sed -e "s:^[0-9,.KMGTPE]*:&B:g;s:,:.:g;s:^B::g;s:[0-9][KMGTPE]:&i:g;s:$S/::g;s:^: :g" | pr -t -e10
- }
- ## Nový řádek
- NL() {
- printf "\n\n"
- }
- ## Náhled
- PR() {
- printf "\n$TC:\n"
- find $S -follow -size +0c -type f -exec du -bh {} \; | SD
- printf "\n$TD:\n"
- printf "" > $E &
- SF | xargs -r0 echo | SE |SD | tee $E
- printf "\n$TC $(find $S -follow -size +0c -type f | wc -l) $TD $(wc -l < $E)"
- }
- ## Čištění
- CL() {
- printf "\n$CG:\n"
- find $S -follow -size +0c -type f -exec du -bh {} \; | SD | tee $E-stats
- for B in $(find $S -follow -size +0c -type f -print0 | xargs -r0 echo)
- do printf "" > "$B" &
- done
- printf "\n$RM:\n"
- printf "" > $E &
- SF | xargs -r0 echo | SE | SD | tee $E
- SF | xargs rm -f 2>&1 &
- printf "\n$CD: $(wc -l < $E-stats) $RD: $(wc -l < $E)"
- printf "" > $E &
- }
- ## Nápověda neinteraktivního režimu
- NN() {
- printf "
- $UG: # kremator [$OP]
- $U$OF$Z
- -P, -p $PP
- -C, -c $CC
- -H, -h $HH
- -A, -a $AA
- $BB"
- NL
- }
- ## Nápověda interaktivního režimu
- IN() {
- printf "\e[1;4m$IM$Z
- $U$KF$Z
- P, p $PP
- C, c $CC
- H, h $HH
- A, a $AA
- Q, q, Esc $QQ
- \e[1;4m$NM$Z"
- NN
- }
- ## Uvítací obrazovka
- WC() {
- printf "
- $U $J
- $U$HK$Z
- $MA: $PT/README"
- }
- ## O programu
- AB() {
- printf "
- $U $J
- ©2012-2015 Roman Horník <roman.hornik@debian-linux.cz>
- $LE: $PT/BSD
- "
- }
- ## Ovládání interaktivního režimu
- IM() {
- read -r -n 1 X
- case $X in
- [Pp]) IH; PR;;
- [Cc]) IH; CL;;
- [Hh]) IH; printf "$U $J\n\n"; IN;;
- [Aa]) IH; AB;;
- [Qq$'\e']) clear; echo -ne "\e[?12l\e[?25h"; exit;;
- *) IH; printf " $KK \'$U$X$Z\'\n\n"; IN;;
- esac
- IM
- }
- ## Ovládání neinteraktivního režimu
- case $1 in
- -[Pp]) PR; NL;;
- -[Cc]) CL; NL;;
- -[Hh]) NH; NN;;
- -[Aa]) AB;;
- -*) printf "$(NH): $KK \'$U$1$Z\'"; NN;;
- *) IH; echo -ne "\e[?25l"; WC; IM;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement