простая манипуляция с граблями - PullRequest
0 голосов
/ 13 декабря 2010

Я использую грабли 0.8.7

Я хочу запустить простую задачу rake, которая распаковывает файл pma.zip

вот моя задача

task :unzip_pma do
  file "pma.txt" => "pma.zip" do
    sh "unzip pma.zip"
  end
end

Предполагается, что pma.txt - это файл, в который pma.zip распаковывается «в». то есть создание pma.txt зависит от существования pma.zip.

однако, когда я запускаю rake unzip_pma, разархивирование не происходит, поэтому я предполагаю, что мой синтаксис неверен.

rake unzip_pma -t -v
(in /Users/abdfadf/Desktop)
** Invoke unzip_pma (first_time)
** Execute unzip_pma

Вопрос 1. Что я делаю не так?
Вопрос 2. Есть ли какой-нибудь способ получить более значимый вывод, чем тот, который я вижу, когда запускаю трассировку в моей команде rake?

СПАСИБО!

1 Ответ

2 голосов
/ 14 декабря 2010

Имя сгенерированного файла равно имени задачи.Затем вы можете передать это имя задачи как зависимость в другую задачу.Попробуйте определить свои рейк-задачи следующим образом:

file "pma.txt" => "pma.zip" do
  sh "unzip pma.zip"
end

task :unzip_pma => "pma.txt" do
  # Other actions can go here...
end

Имея вышеприведенное в вашем рейк-файле, вы также можете просто запустить:

rake pma.txt

Если вы хотите заставить одну задачу запускаться внутри другой(вместо использования правила зависимости), используйте Rake::Task[:the_other_task].invoke

...