Видео ролики бесплатно онлайн

Смотреть аниме видео

Официальный сайт moscowout 24/7/365

Смотреть видео бесплатно


razum2um 25.08.09 01:10 # +2
Предложение: В advanced bash есть про getopt, ибо вариант со "следующим после -о" аргументом не располагает к добавлению опций (ну как обычно: verbose и не очень или еще какие будут...)
Minoru 25.08.09 01:20 # +1
Да, я про getopt уже задумывался. Вчера даже пытался его осилить (правда, на Сях), в основном потому что планируется добавление опции -- (на случай файлов с именами «-o», «--help» и т.п.) — но что-то так и не понял, как же это дело реализовать. Надо ещё поковыряться.

Но за замечание спасибо — сейчас же запишу в TODO, чтобы не забыть.

P.S. "advansed bash" == "advanced bash scripting"?
Minoru 26.08.09 22:21 # +0
Сделано. Пришлось перейти на короткие опции (теперь «-h» вместо «--help»), т.к. getopts ограничен, а getopt не хочу юзать по той причине, что он вроде как устарел.
muhas 25.08.09 09:13 # +1
что люди только не придумают что бы не пользовать atool (и можно даже bash-completion-atool зелепить до кучи)
librarian 25.08.09 10:20 # +1
Скрипт полезный, особенно на серверах, где atool не установлен :)
Minoru 25.08.09 16:33 # +0
Что же ты в том, первом посте об atool не сказал? :) Я вот первый абзацик на сайте прочёл — пакет может намного больше, чем мои поделки.

Тем не менее, я не жалею, что написал всё это дело — хоть вспомнил немного, как скрипты делаются, ну и удовольствие получил. Причём даже не смотря на существование atool (обязательно его потестю и, наверное, даже буду использовать вместо своих же скриптов) я намерен хотя бы выполнить TODO — просто потому что кодить в кайф :)
muhas 25.08.09 16:57 # +0
не сказал ибо память девичья :(
может твои скрипты выльются во что-то большее чем atool, тогда будет приятнее юзать именно sh скрипты нежели perl
Minoru 25.08.09 20:29 # +0
может твои скрипты выльются во что-то большее чем atool
Во что-то большее — вряд ли. Во что-то альтернативное — вероятно. Мне в atool не понравилось отсутствие прогресс-бара (поклон greatx, pv — это просто фантастика!). В то же время порадовал механизм распаковки — сначала во временную директорию, потом если файл один (не забываем, что директория — тоже файл), перемещаем его, иначе переименовываем директорию в имя архива (без расширения). Красиво сделано. Думаю, если не брошу проект, буду двигаться в сторону создания альтернативы atool.

тогда будет приятнее юзать именно sh скрипты нежели perl
У тебя личные счёты с Perl или просто считаешь, что скриптовать шелл-операции не на sh — глупо?

Вообще-то bash — ограниченный язык (это я сейчас всем Америку открыл, ага :), но писать буду на нём (если возьмусь-таки за POSIX Shell — ждите перехода на sh).
muhas 26.08.09 09:36 # +1
У тебя личные счёты с Perl или просто считаешь, что скриптовать шелл-операции не на sh — глупо?
нет, просто баш проще править лично мне, да и автоматизация шела на шеле как-то идеалогически более верна. К тому же "архиватор" на шеле можно будет включить в минидистры дабы не тянуть perl
gen1s 26.08.09 14:13 # +1
Делать мне было нечего и я решил немножко доделать скрипт распаковки. Работает теперь он почти идентично atool -
механизм распаковки — сначала во временную директорию, потом если файл один (не забываем, что директория — тоже файл), перемещаем его, иначе переименовываем директорию в имя архива (без расширения)
.
Посмотреть скрипт (и сделать изменения) можно тут: http://pastebin.com/m2528ce8d
Теперь хочу добавить опцию -o (--output-dir), чтобы можно было распаковывать архивы не в текущую директорию.
Minoru 26.08.09 15:00 # +0
А «шапку» поправить? «Modyfied by gen1s <gen1s @ mail com>» ;)

Юзать /tmp неэффективно — перемещение на одном разделе мгновенно, а между разделами равноценно копированию. То есть для эффективной работы надо tmp="." :)

Принцип работы функции getArchPath я так и не допёр (может, мне опыта не хватает, а может, написано плохо — не мне судить).

В остальном — хвала и почёт. Пока я тут языком чешу, ты таки пишешь полезный код :)

P.S Только вот запустить это дело мне так и не удалось.
zsh: ./unpk: bad interpreter: /bin/bash^M: Нет такого файла или каталога
— и все тут :(

P.P.S 28-го уезжаю на учёбу, комп заберу позже — так что не обращайте внимания на то, что некоторое время ничего не буду писать ;)
Minoru 26.08.09 22:24 # +0
Трабл с «/bin/bash^M» решил — просто в скачанном скрипте (юзал линк download над кодом) используются CLRF переводы строк (Windows-формат), в то время как должны быть LF (*nix-формат). aptitude install tofrodos и fromdos scriptname всё решили ;)
gen1s 26.08.09 16:18 # +1
Новая версия тут: http://pastebin.com/m649c798c
Добавлена опция "-o путь" - куда распаковывать архивы.
Временная папка создаётся невидимой в директории, куда распаковываются архивы.

25.08.09 00:35 Minoru

Tips & tricksУпростим упаковку/распаковку архивов в консоли — 2

В начале этого месяца на welinux'е пробегала отличная статья от Zend'а, повествующая о двух функциях, образующих единый интерфейс к различным архиваторам. В комментариях было указано на некоторые недостатки функций (например, проблемы в случае передачи скрипту не конкретного имени, а списка файлов), а также сделан намёк на превосходную тулзу pv, которая позволяет отображать красивые прогресс-бары при пропускании инфы по пайпам. Я на момент публикации той статьи работать на своём Linux-десктопе не мог, но идею запомнил — ибо хорошо. Недавно я таки добрался до десктопа, усовершенствовал — может быть, правильнее будет говорить «переписал» — код Zend'а и теперь представляю его на ваш суд.

Отличия от Zend'овской версии следующие:
  • При упаковке/распаковке по возможности юзается pv. Если нельзя (zip, rar, 7z), используются стандартные средства отображения прогресса. Присутствует проверка на наличие и доступность pv. Если отсутствует, при архивировании включаются стандартные -v опции, чтобы хоть как-то показать, что работа идёт :)
  • Добавлены опции --help. Так солиднее :)
  • В pk обавлена опция -o. За ней следует имя файла, в который будет осуществляться вывод. Не используется при упаковке gzip и bzip2.
  • Добавлено немного логики для работы с выходным файлом. bzip2 и gzip просто пакуют каждый из переданных файлов в имя_исходного_файла.gz (или .bz2), остальные ведут себя следующим образом:
    — Если задана опция -o, то использовать в качестве выходного файла её аргумент, иначе:
    +—— если файл один, то паковать в имя_исходного_файла.tar (tar.bz2, tar.gz, zip… — зависит от архиватора)
    +—— если файлов много, то юзать имя_текущей_директории.tar (расширение, опять-таки, по обстоятельствам)

Всё это дело в активном режиме гоняет у меня на компе уже четыре дня, все ошибки (пока что была найдена аж одна :) оперативно фиксятся. Есть некоторые планы по доработке (см. TODO), но они не критичны — основные функции скрипты уже выполняют.

Т.к. разработка всё ещё продолжается, считаю целесообразным не постить листинги кода, а дать ссылку на git-рупозиторий: git://github.com/Minoru/EasyPK.git. Получить локальную копию скриптов очень просто:
git clone "git://github.com/Minoru/EasyPK.git"
(естественно, git должен быть установлен; Debian'щикам хватит git-core). Также есть возможность смотреть код прямо в браузере — http://github.com/Minoru/EasyPK/tree/master. Дабы опровергнуть мнения о том, что у меня мания величия («написал парочку мелких скриптов, а уже хостит их в git и даже называет всё это дело “EasyPK distribution”»!), приведу пару причин, почему так:
  • ещё в самом начале разработки, когда только-только прикручивался pv, я обронил на одном из irc-каналов, что пишу скрипт. Всем сразу стало жутко интересно, я аж засомневался, не приняли ли мои слова за анонс нового open source ядра :D Короче, пришлось pastebin'ить сорцы, и повторять процедуру после каждого значимого изменения.
  • Я раньше пробовал SVN и меня, вобщем-то, заинтересовало применение VCS. А вот подвернулась возможность поюзать Git — и сервер есть, и задача ;)

Всем заинтересовавшимся — welcome, жду фидбеков в виде камментов к посту ;)

P.S. Спасибо Zend за идею скрипта и Raging_Hog'у за толчок в сторону github.


Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 86)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 1759 из 140 городов)
            Топ пользователей Топ блогов
            В сети: todeus

            Новенькие: viperanry, kutdenis, Rogvold, openphantom, Aysenhorn
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн