Я создаю файл во временном каталоге.Если генерируемый файл отличается от уже существующего, я не хочу его обновлять и запускать команду.Если это то же самое, то я ничего не могу сделать.
Мой код выглядит так:
errstatus = 0
if FileUtils.identical?('/var/tmp/newfile', '/var/tmp/originalfile')
$stderr.puts "Files are the same, nothing to do"
else
$stderr.puts "Files are different, let's update them."
if FileUtils.cp_r '/var/tmp/newfile', '/var/tmp/originalfile'
$stderr.puts "File copied successfully."
if system('systemcommand1 here')
$stderr.puts "command ran OK"
if system('systemcommand2 here')
$stderr.puts "next command ran ok"
else
$stderr.puts "command 2 failed"
errstatus = 1
end
else
$stderr.puts "command 1 failed"
errstatus = 1
end
end
end
Когда я запускаю его, когда файлы отличаются, я получаю вывод:
Files are different, let's update them.
Он работает с FileUtils.cp_r
без каких-либо ошибок, но не говорит об успешном копировании файла или выполнении системной команды.Я использовал тот же синтаксис для оценки FileUtils.identical?
, но он не работает для FileUtils.cp_r
.
Где я здесь ошибаюсь?