Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Перенаправить patch на стандартный вывод  (Прочитано 419 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enchantner

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Собственно, необходимо поймать в выводном пайпе пропатченный командой текстовый файл. При попытке 'patch -o -' выдает 'patch: **** can't output patches to standard output'. Неужели никак?

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Перенаправить patch на стандартный вывод
« Ответ #1 : 19 Январь 2010, 14:38:42 »
Тут неопределенность возникает. Ведь патч может патчить сразу несколько файлов, имена которых указаны в самом патче. Непонятно, что и в какой последовательности нужно будет выводить на stdout.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн enchantner

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Перенаправить patch на стандартный вывод
« Ответ #2 : 19 Январь 2010, 18:26:05 »
Ну у меня один файл патчится, просто в скрипте, откуда я его вызываю, нужно поймать вывод, не сохраняя на диск, и /dev/tty как терминал тоже не катит, ибо скрипт.

Оффлайн dedandrei

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Перенаправить patch на стандартный вывод
« Ответ #3 : 19 Январь 2010, 23:56:22 »
Ну у меня один файл патчится, просто в скрипте, откуда я его вызываю, нужно поймать вывод, не сохраняя на диск, и /dev/tty как терминал тоже не катит, ибо скрипт.
  Посмотри скрипт в текстовом редакторе - куда он у тебя отредактированный файл выносит и подкорректируй , перенаправь-
 > &1 (1-дескриптор stdout) на монитор.

Оффлайн enchantner

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Перенаправить patch на стандартный вывод
« Ответ #4 : 20 Январь 2010, 11:03:29 »
Я этот скрипт сам и пишу :) на Python. Идет вызов patch с аргументами, пытался черточкой перенаправить на стандартный - пишет нельзя. Уже запарился, может, named pipes использовать?

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Перенаправить patch на стандартный вывод
« Ответ #5 : 20 Январь 2010, 13:54:57 »
Уже запарился, может, named pipes использовать?
Ну, это вариант. :) Только придется как-то из патча вытащить имя файла, которое он будет патчить, и так же назвать трубу.

А огласите, пожалуйста, более общую задачу? Может быть есть способ проще...
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн enchantner

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Перенаправить patch на стандартный вывод
« Ответ #6 : 20 Январь 2010, 19:15:07 »
В принципе, уже сделал :)

Код: Python
  1. fifo = os.path.join(self.path, 'pipe')
  2. os.mkfifo(fifo)
  3. op = os.popen('cat '+ fifo)
  4. proc = call(['patch', current_keyframe, '--input='+fpath, '--output='+fifo])
  5. os.unlink(fifo)
  6. dmp = op.read()

 

Страница сгенерирована за 0.062 секунд. Запросов: 23.