Как структурировать файл и каталог Rake-задач в рамках обычной задачи? - PullRequest
3 голосов
/ 30 сентября 2011

Я хочу создать файл my.db в каталоге db/. Я не знаю, как структурировать задачи file и directory в рамках обычных task Помогите!

task :create, [:name, :type] do |t, args|
  args.with_defaults(:name => "mydb", :type => "mysql")
  directory "db"
  file "db/my.db" => "db" do
    sh "echo 'Hello db' > db/my.db"
  end
  puts "Create a '#{args.type}' database called '#{args.name}'"
end

1 Ответ

13 голосов
/ 30 сентября 2011

Следующий код создаст БД и файл, если они уже не существуют ...

Вы можете использовать это, если хотите, чтобы команды были в одной задаче рейка

Dir.mkdir("db") unless Dir.exists?("db")
unless File.exists?("db/my.db")
  File.open("db/my.db", 'w') do |f|
    f.write("Hello db")
  end
end

Если вы хотите использовать файловое задание, предоставленное rake, вам нужно сделать это ...

# Rakefile
directory "db"

file "db/my.db" => 'db' do
  sh "echo 'Hello db' > db/my.db"
end

task :create => "db/my.db" do 
end

В этом примере вы фактически указываете rake создавать задачи с именами «db» и «db / my.db», которые имеют побочный эффект при создании каталога или файла.

Надеюсь, это поможет, извините за первоначальное замешательство:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...