Beri bash i ebash / Говнокод #11548 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
#!/bin/dash -e

fono="#DFAF8F"
monato="#80AAD4"
kvin="#DCA3A3"
fino="#949494"


enigo () {
  while read inc < "$FIFO"
  do
    rel=$(( $rel + $inc ))
    cal -m $( date +'%m %Y' -d "+$rel month" ) | filtrilo $rel
  done
}


filtrilo () {
  kura=$(date +%e)

  awk -v rel=$1 -v kura="$kura" -v fono=$fono \
      -v monato=$monato -v kvin=$kvin -v fino=$fino '

  BEGIN { nigra = "#000000" }

  function fg(koloro, text) { return sprintf("^fg(%s)%s^fg()", koloro, text) }
  function bg(koloro, text) { return sprintf("^bg(%s)%s^bg()", koloro, text) }

  function set(i,j, koloro) { for(k=i;k<=j;k++) $k = fg(koloro, $k) }

  NR == 1 { $1 = fg(monato,$1) }
  NR == 2 { set(1,5,kvin); set(6,7,fino) }
  NR > 2 && rel == 0 { sub( sprintf("%s\\>",kura), fg(nigra, bg(fono, kura)) ) }

  { print "  " $0 }'
}


eligo () {
  dimensioj=$( xdpyinfo | awk '$1 == "dimensions:" { print $2 }' )
  ekrano=${dimensioj%x*}
  menuo=170 # artifiko
  x=$(( $ekrano - $menuo ))
  y=20

  i="exec:echo  0 > $FIFO"
  n="exec:echo +1 > $FIFO"
  p="exec:echo -1 > $FIFO"

  agoj="onstart=uncollapse,grabkeys,grabmouse,$i;onexit=$i;\
key_Escape=exit;key_q=exit;key_n=$n;key_p=$p;key_space=$n;key_BackSpace=$p;\
button3=exit;button5=$n;button4=$p"

  exec dzen2 -l 7 -x $x -y $y -w $menuo -u -e "$agoj"
}


FIFO=${0%.sh}
[ -p "$FIFO" ] || mkfifo "$FIFO"

rel=0
enigo | eligo

Зачем это здесь? Смеха ради.
Кстати в баше можно организовать bidirectional pipes? Никак не соображу.

Запостил: tetsuo tetsuo, (Updated )

Комментарии (10) RSS

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8