Использование Platypus для создания приложений Mac OS X из сценария perl

Можно ли получить пользовательский ввод при использовании Platypus для создания приложения из скрипта?

У меня есть простой Perl-скрипт. Который, если я запускаю из терминала, он запрашивает ввод пользователя. Но когда я создаю файл приложения с помощью Platypus, отображается только вывод скрипта.

1 ответ

Решение

Документация ясна по этому вопросу, нет двунаправленной связи; см. http://www.sveinbjorn.org/files/manpages/PlatypusDocumentation.html

Это оставляет вам несколько обходных путей;

  • Используйте и ожидайте, что скрипт введет ваши данные;
  • Обновите ваш скрипт, чтобы принимать аргументы, что является функцией, поддерживаемой platypus;
  • Если вам нужно добавить больше динамической информации, рассмотрите возможность использования диалога TK для запроса ввода данных пользователем;
  • На Mac вы можете использовать osascript для вызова диалога с минимальным кодом;

Пример сценария OSA

#!/usr/bin/env perl

use strict;

sub osascript($) { system 'osascript', map { ('-e', $_) } split(/\n/, $_[0]); }

sub dialog {
  my ($text, $default) = @_;
  osascript(qq{
        tell app "System Events"
            text returned of (display dialog "$text" default answer "$default" buttons {"OK"} default button 1 with title "$(basename $0)")
        end tell
  });
}

my $result = dialog("Life, the universe and everything?", "42");

Другие вопросы по тегам