Advertisement
Typhoon

Vega - Kremator

Apr 28th, 2015
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.58 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. ## Proměnné. Některé budou redefinovány souborem s překladem do vašeho jazyka
  4. TC="To clean"
  5. TD="To remove"
  6. RT="\e[1;31mERROR: \e[00mAre you root?"
  7. SC="A simple system logs cleaner"
  8. PR="Preview "
  9. CL="Clean "
  10. HL="Help "
  11. QT="Quit "
  12. UG="Usage"
  13. CG="Cleaning"
  14. RM="Removing"
  15. CD="Cleaned"
  16. RD="Removed"
  17. OP="option"
  18. OF="Option      Function"
  19. KF="Key     Function"
  20. PP="Print files to clean and remove"
  21. CC="Remove old or archived logs and cleans syslogs"
  22. HH="Print help"
  23. AA="About "
  24. KK="Invalid option"
  25. IM="Interactive mode"
  26. BB="Without option  $IM"
  27. NM="Noninteractive mode"
  28. HK="  For help press H"
  29. MA="Manual"
  30. LE="  License"
  31. PT=/usr/share/kremator
  32.  
  33. ## Mezery
  34. M1="          "
  35. M2="        "
  36.  
  37. ## Formátování, cesty...
  38. Z="\e[00m"
  39. U="\e[1m"
  40. W="\e[1;33m"
  41. V=$PT/LANG
  42. T="Kremator 1.2.1"
  43. S=/var/log
  44. R="\e[97;100m"
  45. E=/tmp/kremator
  46.  
  47. ## Nastaví jazyk programu. Pokud neexistuje překlad, použije se angličtina
  48. if [ -f "$V/$LANG" ]
  49.  then source "$V/$LANG"
  50. fi
  51.  
  52. ## Titulek okna
  53. echo -e '\033]2;'$T'\007'
  54.  
  55. ## Popis
  56. J="\n\t$M2$U$T$Z - $SC$Z"
  57.  
  58. ## Vyhledávač souborů
  59. SF() {
  60.  find $S -follow -type f -name "*[1-9]*" -o -name "*.gz*" -o -name "*.old*" -o -name "*~" -o -name "*.svg" -o -name "*.png"
  61. }
  62.  
  63. ## Překlad mezera > nový řádek
  64. SE() {
  65.  sed -e 's: :\n:g'
  66. }
  67.  
  68. ## Hlavička interaktivního režimu
  69. IH() {
  70.  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"
  71. }
  72.  
  73. ## Hlavička neinteraktivního režimu
  74. NH() {
  75.  printf "\n$T\n"
  76. }
  77.  
  78. ## Filtr přípon
  79. SD() {
  80.  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
  81. }
  82.  
  83. ## Nový řádek
  84. NL() {
  85.  printf "\n\n"
  86. }
  87.  
  88. ## Náhled
  89. PR() {
  90.  printf "\n$TC:\n"
  91.  find $S -follow -size +0c -type f -exec du -bh {} \; | SD
  92.  
  93.  printf "\n$TD:\n"
  94.  printf "" > $E &
  95.  SF | xargs -r0 echo | SE |SD | tee $E
  96.  printf "\n$TC $(find $S -follow -size +0c -type f | wc -l)     $TD $(wc -l < $E)"
  97. }
  98.  
  99. ## Čištění
  100. CL() {
  101.  printf "\n$CG:\n"
  102.  find $S -follow -size +0c -type f -exec du -bh {} \; | SD | tee $E-stats
  103.  for B in $(find $S -follow -size +0c -type f -print0 | xargs -r0 echo)
  104.   do printf "" > "$B" &
  105.  done
  106.  
  107.  printf "\n$RM:\n"
  108.  printf "" > $E &
  109.  SF | xargs -r0 echo | SE | SD | tee $E
  110.  SF | xargs rm -f 2>&1 &
  111.  printf "\n$CD: $(wc -l < $E-stats)     $RD: $(wc -l < $E)"
  112.  printf "" > $E &
  113. }
  114.  
  115. ## Nápověda neinteraktivního režimu
  116. NN() {
  117.  printf "
  118. $UG: # kremator [$OP]
  119.  
  120. $U$OF$Z
  121. -P, -p      $PP
  122. -C, -c      $CC
  123. -H, -h      $HH
  124. -A, -a      $AA
  125. $BB"
  126.  
  127.  NL
  128. }
  129.  
  130. ## Nápověda interaktivního režimu
  131. IN() {
  132.  printf "\e[1;4m$IM$Z
  133. $U$KF$Z
  134. P, p        $PP
  135. C, c        $CC
  136. H, h        $HH
  137. A, a        $AA
  138. Q, q, Esc   $QQ
  139.  
  140. \e[1;4m$NM$Z"
  141.  NN
  142. }
  143.  
  144. ## Uvítací obrazovka
  145. WC() {
  146.  printf "
  147. $U      $J
  148.  
  149.              $U$HK$Z
  150.  
  151.           $MA: $PT/README"
  152.  
  153. }
  154.  
  155. ## O programu
  156. AB() {
  157.  printf "
  158. $U      $J
  159.  
  160.        ©2012-2015 Roman Horník <roman.hornik@debian-linux.cz>
  161.  
  162.            $LE: $PT/BSD
  163.  
  164. "
  165. }
  166.  
  167. ## Ovládání interaktivního režimu
  168. IM() {
  169. read -r -n 1 X
  170. case $X in
  171.     [Pp])       IH; PR;;
  172.     [Cc])       IH; CL;;
  173.     [Hh])       IH; printf "$U      $J\n\n"; IN;;
  174.     [Aa])       IH; AB;;
  175.     [Qq$'\e'])  clear; echo -ne "\e[?12l\e[?25h"; exit;;
  176.     *)      IH; printf " $KK \'$U$X$Z\'\n\n"; IN;;
  177. esac
  178. IM
  179. }
  180. ## Ovládání neinteraktivního režimu
  181. case $1 in
  182.     -[Pp])      PR; NL;;
  183.     -[Cc])      CL; NL;;
  184.     -[Hh])      NH; NN;;
  185.     -[Aa])      AB;;
  186.     -*)     printf "$(NH): $KK \'$U$1$Z\'"; NN;;
  187.     *)      IH; echo -ne "\e[?25l"; WC; IM;;
  188. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement