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

Мне нужна помощь в преобразовании этого простого сценария оболочки в сценарий 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?

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Единственная проблема, с которой я сталкиваюсь (сейчас) - это изменить 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
0 голосов
/ 31 августа 2011

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

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

...