1. bash / Говнокод #11548

    −117

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 07 Августа 2012

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

    • Эсперанто?
      Ответить
      • > nigra = "#000000"

        Вопиющая неполиткорректность!
        Ответить
        • Нет бы как у французов - нуар.
          Ответить
          • Для вас oi самый простой звук? Латынь: черный niger [gra, um];.
            Не обязательно же слово прибивать на гвозди к одному историческому аспекту.
            Ответить
    • //Кстати в баше можно организовать bidirectional pipes?
      Если нужно послать поток в 2 точки, то Use tee, Luke
      Ответить
      • показать все, что скрыто> Use tee, Luke

        луркоёб
        Ответить
        • Я встретил человека^Wшкольника, который никогда ничего не слышал про SW. Я буду рассказывать про эту встречу внукам.
          Ответить
          • http://www.youtube.com/watch?v=MK2Ezi_SdQ4
            Правда качество - хуйня.
            Ответить
        • А это снова ты, мудило с поломанным детектором? Съеби обратно на лурку, к источнику познаний .
          Ответить
    • Kial vi uzas Esperanton en la Bash skriptoj?
      Ответить

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