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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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) [Выделить]
fifo = os.path.join(self.path, 'pipe')
os.mkfifo(fifo)
op = os.popen('cat '+ fifo)
proc = call(['patch', current_keyframe, '--input='+fpath, '--output='+fifo])
os.unlink(fifo)
dmp = op.read()

 

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