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

    −97

    1. 1
    if [ `ls -al /some/path/ | grep filename | (read a b c d e f g h i j k && echo ${i})` != "" ]; then

    я бы до такого никогда не додумался. авторство утеряно в аналах: то ли немецкое, то ли американское творчество.

    Dummy00001, 02 Октября 2014

    Комментарии (2)
  2. bash / Говнокод #16780

    −107

    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
    ...
    %install
    %{__rm} -rf %{buildroot}
    mkdir -m 755 -p %{buildroot}%{_datadir}/common-lisp/source/%{name}
    for s in $(find -regex '.+\.\(lisp\|asd\|org\)$'); do
      install -D -m 644 $s %{buildroot}%{_datadir}/common-lisp/source/%{name}
    done;
    mkdir -m 755 -p %{buildroot}/etc/common-lisp/source-registry.conf.d
    for las_conf in $(ls %{buildroot}/etc/common-lisp/source-registry.conf.d | tail -n 1); do
        for last in $(echo "${last_conf}" | grep -oP '^[0-9]+'); do
            for cl_prefix in $(echo "${last}+1" | bc); do
                echo '(:include "/usr/share/common-lisp/source/%{name}/")' > \
    	            "%{buildroot}/etc/common-lisp/source-registry.conf.d/${cl_prefix}-%{name}.conf"
                install -m 644 ${cl_prefix}-%{name}.conf %{buildroot}/etc/common-lisp/source-registry.conf.d
            done;
        done;
    done;
    
    %files
    %defattr(-,root,root,-)
    %{_datadir}/common-lisp/source/%{name}/*
    ...

    И ведь что показательно, работает!

    Вот просто не предать словами, как я это ненавижу. Менеджер пакетов завдующий установкой ПО написан на Питоне, но нельзя просто так взять и на Питоне же написать установочный скрипт. Надо горбатится над каким-то недоязыком с феноменально шизофреничными макросами полным отсутствием каких-либо высокоуровневых инструментов, типа структур и интерфейсов...

    wvxvw, 30 Сентября 2014

    Комментарии (26)
  3. bash / Говнокод #16771

    −118

    1. 1
    set -xexexe

    из тестового скрипта. началось все с очепятки.

    в дурмане тупого писания тупых тестов, не мог остановится хихикать.

    Dummy00001, 27 Сентября 2014

    Комментарии (6)
  4. bash / Говнокод #16743

    −80

    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
    Devastator:ark grawl$ sass-convert -F scss -T sass -i -R *.scss
    Error: '*.scss' is not a directory
      Use --trace for backtrace.
    Devastator:ark grawl$ sass-convert -F scss -T sass -i -R .
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R *.scss
    Error: 'colors.scss' is not a directory
      Use --trace for backtrace.
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R .
        convert ./colors.scss
      overwrite ./colors.scss
    Errno::EISDIR: Is a directory - .
      Use --trace for backtrace.
    Devastator:partials grawl$ sass-convert -F scss -T sass -i -R
    Error: directory required when using --recursive.
      Use --trace for backtrace.

    sass-convert великолепен

    Grawl, 22 Сентября 2014

    Комментарии (32)
  5. bash / Говнокод #16470

    −111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    WHEN=`date +%Y-%m-%d_%H-%M`;
    # Если дамп в этом часу не создавался, то минуты в имени опускаем
    # Осторожно, этот скрипт подвержен проблеме 10000 года.
    # Обязательно скажите об этом своим прапрапрапрапрапрапрапрапрапрапрапра...правнукам
    if ! [[ -s $DYMPATH/${WHEN:0:13}.sql.$ARCEXTEN ]] ; then
        WHEN=${WHEN:0:13}
    fi

    DIX315, 04 Августа 2014

    Комментарии (8)
  6. bash / Говнокод #16427

    −114

    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
    #!/bin/bash
    C=/${0}
    C=${C%/*}
    M=`/bin/uname -m`
    if test -e /System/Library/Frameworks/GameController.framework; then
            exec "${C:-.}"/iFile_
    elif test -e /System/Library/Frameworks/CoreMedia.framework; then
            case $M in
                    "iPhone1,2" | "iPod2,1") exec "${C:-.}"/iFile4;;
                    *) exec "${C:-.}"/iFile5;;
            esac
    elif test -e /System/Library/Frameworks/GameKit.framework; then
            exec "${C:-.}"/iFile3
    else
            exec "${C:-.}"/iFile2
    fi

    Вот такой вот способ узнать версию iOS.

    0x0badf00d, 26 Июля 2014

    Комментарии (74)
  7. bash / Говнокод #16426

    −118

    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
    #!/bin/bash
    
    # make file $1
    function mkfile () {
      echo -n "$FILE "
      [ -e "$1" ] && echo "exists" && return 0
      sudo -u liferay mkdir -p $(dirname "$1")
      sudo -u liferay touch "$1"
      echo "created"
    }
    
    PREFIX=/opt/liferay/data/document_library
    
    mkfile $PREFIX/10153/1322521/20445/1.0
    
    for (( i=28036 ; i <= 28135 ; ++i )) ; do
      mkfile $PREFIX/10153/2992652/$i/1.0
    done

    Скрипт создания недостающих файлов в document_library написаный админами одного крупного восточного универа)

    gremlin_tomsk, 25 Июля 2014

    Комментарии (20)
  8. bash / Говнокод #16308

    −122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    exit_status=0
    
    # blah-blah
    
    for process in "service1 service2 service3"; do
        # blah-blah
    
        $process || \
            exit_status=`expr "${exit_status}" \| 1` 
    done
    
    exit $exit_status

    В раздел "джависты пишут шелл-скрипты"

    Elvenfighter, 11 Июля 2014

    Комментарии (0)
  9. bash / Говнокод #15779

    −125

    1. 1
    2. 2
    3. 3
    if [ $count > 0 ]; then
        ...
    fi

    bormand, 18 Апреля 2014

    Комментарии (18)
  10. bash / Говнокод #15642

    −128

    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
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
    
        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac

    gradle wrapper

    Elvenfighter, 02 Апреля 2014

    Комментарии (1)