Как я могу преобразовать подстановку команд bash и канал в Applescript?

Мне нужна помощь в преобразовании этого простого сценария оболочки в сценарий Apple.

Дело в том, что он должен использоваться в рабочем процессе Automator, и поэтому мне нужно, чтобы окно терминала было открыто, что невозможно сделать с помощью сценария оболочки.

Сценарий оболочки выглядит следующим образом:

java -classpath `dirname "$1"` `basename "$1" | sed "s/.class//g"`

Это получает местоположение файла, а затем имя файла, а затем удаляет расширение файла «.class», а затем запускает его с помощью команды Java. Так, например, будет сгенерирована следующая команда:

java -classpath /users/desktop/ filename

Мне нужно преобразовать эту команду, чтобы она работала с Applescript, чтобы я мог видеть запуск приложения в окне терминала. Это начнется следующим образом:

on run {input, parameters}
    tell application "Terminal"
        activate
        do shell script "java -classpath path/to/ file"
    end tell
end run

Как я могу перенести преобразование текста в Applescript?


person Cristian    schedule 30.08.2011    source источник


Ответы (2)


Единственная проблема, которую я вижу (прямо сейчас), - это изменить do shell script на do script. В остальном, вы начали его правильно. Я предполагаю, что вы хотите передать (ссылки) на файлы в сценарий оболочки. Это довольно просто...

set these_files to (choose file with multiple selections allowed)
repeat with this_file in these_files
    tell application "Finder" to if the name extension of this_file is "class" then my do_shell_script(this_file)
end repeat

on do_shell_script(this_file)
    tell application "Terminal" to activate --makes 'Terminal' the frontmost application
    --'do shell script ...' goes here
    --To refer to a file/folder for a 'do shell script', do something like the command below...
    --do shell script "mdls -name kMDItemLastUsedDate " & quoted form of the POSIX path of this_file
end do_shell_script
person fireshadow52    schedule 30.08.2011
comment
Не забудьте использовать quoted form of путь posix - person Flambino; 31.08.2011
comment
@Flambino ВАУ, я этого не видел. Спасибо исправлю. :D - person fireshadow52; 31.08.2011

Я совсем не знаком с AppleScript, но полагаю, вы могли бы просто вызвать существующий сценарий оболочки в строке do shell script вместо того, чтобы пытаться повторить манипуляции со строками в AppleScript.

Примечание:
Похоже, вы хотите иметь возможность вызывать классы Java щелчком (или перетаскиванием, или чем-то подобным). Ваш метод будет работать только для классов в анонимном пакете, то есть без объявления package ...; в начале исходного кода. Для других вы можете попытаться выяснить, в каком пакете они находятся. Я понятия не имею, как это сделать. В любом случае, распространяемые программы должны находиться в архивах jar, где вы сможете запустить их с помощью java -jar ....)

person Paŭlo Ebermann    schedule 30.08.2011