LINUX.ORG.RU

[bash][быдло...код] уменьшить скрипт


0

3
#!/bin/bash
case $1 in
libva ) curl -s --url http://www.splitted-desktop.com/~gbeauchesne/ | grep "<p>" | cut -d\> -f3 | head -n4;;
nvidia ) curl -s --url ftp://download.nvidia.com/XFree86/Linux-x86/ | awk '// {print $9}' | sort -nk1 | tail -n1;;
nvnews ) curl -s --url http://www.nvidia.com/object/unix.html | grep "Linux x86/IA32" | sed -e 's/>/ /g' -e 's/</ /g' | awk '{print $10}';;
turbo ) curl -s --url http://sourceforge.net/projects/libjpeg-turbo/files/ | awk '/Download libjpeg-turbo/ {print $2}' | sed 's/.tar.*//g' | cut -d\- -f3;;
deadbeef ) curl -s --url http://sourceforge.net/projects/deadbeef/files/ | grep "Click to download deadbeef" | cut -d\- -f2,3 | sed 's/.tar.*//g' | head -n1;;
imagemagic ) curl -s --url ftp://ftp.imagemagick.org/pub/ImageMagick/ | awk '/tar.xz/ {print $9}' | sed 's/ImageMagick-//g' | sort -nk1 | tail -n1 | sed 's/.tar.xz//g';;
qtcurve-qt4 ) curl -s --url http://kde-look.org/content/show.php?content=40492 | grep Source | tr "<" "\n" | tr -d ")" | awk '/KDE 4/ {print $5}';;
gtk-engines-qtcurve ) curl -s --url http://kde-look.org/content/show.php?content=40492 | grep Source | tr "<" "\n" | tr -d ")"| awk '/Gtk 2/ {print $5}';;
X ) curl -s --url http://cgit.freedesktop.org/xorg/xserver/ | tr " " "\n" | grep zip | sed -e 's/.zip//g' | cut -d"'" -f2 | cut  -d"-" -f3 | head -n1;;
chromium ) curl -s --url http://build.chromium.org/official/ | tail -n5 | awk '/tar.bz2/ {print $6}' | cut -d\" -f2 | sed -e 's/.tar.bz2//g' -e 's/chromium-//g';;
esac

реально ли уменьшить сие безобразие? && как?

★★★★

-=:=-

Хз.
А че оно делает?
Я так понял, что это некий агрегатор новостей (или check'ер), работающий по $1, дальше case и кач страниц, парсинг нужного.

Хм, помойму и так предельно минимально. Ну, можешь curl -s --url на что-нибудь заменить.....а по сабжу...помойму и не надо ничего.

KosmiK ()

нормальный свитч с кучей конвееров, чё? зачем уменьшать то?

mi_estas ()

в tinyurl все ссылки загони, че

derlafff ★★★★★ ()

помнится кто-то на лоре предлагал выкладывать разрабам в корень веб-сервака файл с последними версиями ПО, жаль что никто тогда не зачесался, так бы тебе меньше гемора былобы

visual ★★★ ()

все эти страшные пайпы с тейлам, хэдами, авк и грепами можно позаменять на сед по одному на элемент

anonymous ()

chromium )

curl -s --url http://build.chromium.org/official/ | sed -n 's/^.*chromium-\(.*\).tar.bz2.*$/\1/p;' |tail -1

lazyklimm ★★★★★ ()

нутыпонел

X:

curl -s --url http://cgit.freedesktop.org/xorg/xserver/ | sed -n 's/^.*xorg-server-\(.*\)\.zip.*$/\1/p' | head -1 

lazyklimm ★★★★★ ()

по идее на перловку это переписать самое то

anonymous ()

Переписать на перл. Или заменить все связкм вида awk/sed/grep/cut/head на awk.

kim-roader ★★ ()

Придумалась такая идея, как сделать это красивее.

Переписать регулярки на awk, а потом использовать что-то вроде

#!/bin/bash

# Nvidia drivers
nvidia_page_addr='ftp://download.nvidia.com/XFree86/Linux-x86/latest.txt'
nvidia_awk_script='{print $1}'

page_addr=$1_page_addr
awk_script=$1_awk_script

if [ -e "${!page_addr}" ] || [ -e "${!awk_script}" ]
then
    echo "Don't know how to get info about $1"
else
    curl -s --url "${!page_addr}" | awk "${!awk_script}"
fi

exit 0
anonymous ()

> уменьшить скрипт
Зачем?

tn1 ()

Не вижу быдлокода. С 1 взгляда все понятно

Rost ★★★★ ()
Ответ на: комментарий от Rost

ну всё-таки «sed -n 's/^.*что_то-\(.*\)\.что_то.*$/\1/p' | head -1 » оказалось гораздо короче и довольно универсально
просто я сам не шарю в sed/awk/etc

megabaks ★★★★ ()
Ответ на: комментарий от Xenon

а какие именно?
если все as is, то много файликов получается, включая forecast

megabaks ★★★★ ()

Забудь о версиях, собирай всё из git =)

xorik ★★★★★ ()
Ответ на: комментарий от xorik

не годится
да - покажи мне гит нвидии - разрабы нувы тебе памятник при жизни воздвигнут :3

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

Вот как раз погода меня заинтересовала. и внизу, где музыка - это mpd или что-то другое?

Xenon ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.