Как можно проверить, чтобы видеть, существует ли файл (на удаленном сервере) в Capistrano?

Это - соглашение, используемое для именования типов данных, например, с typedef:


typedef struct {
  char* model;
  int year;
...
} car_t;

41
задан czerasz 10 March 2016 в 16:49
поделиться

3 ответа

На основе ответа @bhups с тестами:

def remote_file_exists?(full_path)
  'true' ==  capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
end

namespace :remote do
  namespace :file do
    desc "test existence of missing file"
    task :missing do
      if remote_file_exists?('/dev/mull')
        raise "It's there!?"
      end
    end

    desc "test existence of present file"
    task :exists do
      unless remote_file_exists?('/dev/null')
        raise "It's missing!?"
      end
    end
  end
end
22
ответ дан 27 November 2019 в 00:09
поделиться

Может быть, вам нужно следующее:

isFileExist = 'if [ -d #{dir_path} ]; then echo "yes"; else echo "no"; fi'.strip
puts "File exist" if isFileExist == "yes"
5
ответ дан 27 November 2019 в 00:09
поделиться

Я сделал это перед использованием команды run в capistrano (которая выполняет команду оболочки на удаленном сервере)

Например, вот одна задача capistrano, которая проверяет наличие файла database.yml существует в каталоге shared / configs и свяжите его, если он существует.

  desc "link shared database.yml"
  task :link_shared_database_config do
    run "test -f #{shared_path}/configs/database.yml && ln -sf 
    #{shared_path}/configs/database.yml #{current_path}/config/database.yml || 
    echo 'no database.yml in shared/configs'"
  end
4
ответ дан 27 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: