Как я могу перечислить файлы для сценария init.d без ruby - PullRequest
1 голос
/ 24 июня 2010

Мне нужно преобразовать скрипт init.d, который использует ruby, чтобы не использовать ruby.Я могу использовать Perl или Python или что-то еще, но я не могу использовать Ruby.Моя главная проблема - выяснить, как динамически получить список файлов * .jar в каталоге и разделить их с помощью ':'.Остальное я легко могу сделать с помощью bash-скрипта.

Вот код Ruby, с которым я работаю:

#!/usr/local/bin/ruby

require 'fileutils'

HOME = '/usr/local/myproject'
JAVA_HOME = '/usr/java/jdk'
JARS = Dir.glob(File.join(HOME, 'lib', '*.jar')).join(':')
PID_FILE = '/var/run/myproject.pid'
OUT_FILE = File.join(HOME, "stdout")
ERR_FILE = File.join(HOME, "stderr")

case ARGV.first
when 'start'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -DHOME=#{HOME} -user me -outfile #{OUT_FILE} -errfile #{ERR_FILE} mypackage.MyProject"
when 'stop'
  exec "/usr/local/bin/jsvc -home #{JAVA_HOME} -cp #{JARS} -pidfile #{PID_FILE} -stop mypackage.MyProject"
end

Ответы [ 2 ]

5 голосов
/ 24 июня 2010

Это должно сделать работу:

JARS=`ls $HOME/lib/*.jar | tr '\n' ':'`
1 голос
/ 25 июня 2010

Моя основная проблема - выяснить, как динамически получить список * .jar-файлов в каталоге и разделить их с помощью:glob функция, которая возвращает список файлов.

my $HOME = '/usr/local/myproject';

my $JARS = join ':', glob( $HOME . '/lib/*.jar' );

/ I3az /

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