Як я можу налаштувати скрипт оболонки як обгортку до головного виконуваного програми?


3

У мене є додаток, який я хочу запустити за допомогою сценарію оболонки, який виконує певну настройку, а потім запускає саму програму з певними опціями. В ідеалі цей сценарій запускатиметься кожного разу, коли програма звичайно запускатиметься, тобто коли я натискаю на нього в доці, двічі клацніть у папці «Програми», запускається з QS або навіть натискає на файл, який відкриється в цій програмі.

Зараз у мене є скрипт для яблук "App" для мого сценарію, але недоліком є ​​те, що він відображається як окремий додаток від основного додатку, який сидить у моєму доку, тому я повинен пам'ятати, щоб не натискати на піктограму головного додатка, але запустити замість цього альтернативний додаток.

Так це можливо зробити? Однією з ідей у ​​мене було перейменувати головний виконуваний файл у додатку на щось інше, а потім замінити його своїм сценарієм. Це розумна справа чи є краще рішення?

Для тих, хто цікавиться, я намагаюся налаштувати Emacs.app, щоб запустити демон, а потім відкрити за допомогою emacsclient. В основному, я хочу, щоб цей скрипт був запущений замість emacs (і я збираюсь модифікувати скрипт, щоб взяти аргументи файлів і відкрити їх також).


Мене бентежить wgat, що ви doinf для Emacs - ви можете запустити Emacs.app, використовуючи аргументи condline
— Марк

Я хочу, щоб це було, коли я клацну піктограму програми Emacs у своєму документі, він запускає мій сценарій замість головного виконуваного Emacs.
— Райан Томпсон

Прохолодний випадок використання, щоб дізнатися про те, як скриптувати речі та розбивати те, що робить додаток, який можна натискати, порівняно зі сценарієм.
— bmike

Відповіді:


2

Я б почав з такого інструменту, як Platypus, щоб ваш сценарій мав усі додатки програми і перевіряв, чи все працює як слід.

Автоматизатор також має приємний графічний інтерфейс для вирішення способів обробки аргументів до сценарію - і у нас тут є кілька питань, які вивчають, як передавати аргументи в дію / аплет Automator і виходити з них.

Без додаткових подробиць про те, як створений ваш демон і як ви його запускаєте, я можу вибрати лише деякі елементи вашого рішення, але оскільки кожен може редагувати цю відповідь, щоб надати більше деталей (або відповісти на окрему відповідь) - можливо, це може призвести до того, як куля прокатить, щоб отримати рішення.


Я думаю, що в основному все вирішено, за винятком однієї речі: коли я "запускаю" додаток, наприклад, натискаючи на його значок Dock, я фактично хочу, щоб він замість цього виконав мій сценарій.
— Райан Томпсон

Ви можете використовувати Platypus, щоб зробити ваш скрипт значком, який можна натиснути, скопіювати піктограму програми у свій сценарій та помістити свій скрипт у док, чи не так?
— bmike

1
Так, я міг би, і насправді це те, що я маю зараз. Але вікна програми будуть згруповані під власною іконою, яка була б окремою від піктограми сценарію.
— Райан Томпсон

Ще один спосіб наблизитись до цього був би такий: якщо припустити, що у мене пакується сценарій у програму за допомогою Platypus, чи є якийсь спосіб, щоб моє додаток "захоплювало" вікна іншого додатка в його значок?
— Райан Томпсон

Я не бачу способу відрізати спадщину какао, коли одна програма керує вікнами - тому ви можете застрягнути у програмі-помічнику, яка щось робить перед тим, як основний додаток виконує або виправляє основний додаток, щоб в першу чергу робити те, що ви хочете . Третім варіантом є створення другого додатка, який достатньо розумний для маніпулювання першим додатком, щоб зробити те, що потрібно зробити під час запуску основного додатка та зміни даних / windows. Це було б найскладніше з усіх.
— bmike

2

Використовуйте /Applications/Emacs.app/Contents/MacOS/Emacs(або інший виконуваний файл у цьому каталозі).

Як правило, пакети програм структуровані як вище. Використовуйте термінал, щоб " ls" пройти до файлу.


Я не можу коментувати головне питання чи відповідь, яку ви зробили під час свого остаточного рішення, але пам’ятайте, що це було вирішено :)
— січня

1

Мені вдалося отримати те, що я хотів, перейшовши в папку App Contents/MacOSі перейменувавши бінарний файл Emacs на Emacs.real. Потім я вклав у свій сценарій і назвав його Emacs для заміни двійкового файлу і налаштував його на виклик Emacs.real після того, як здійснив необхідну установку. Потім запуск програми запускає мій сценарій.

На жаль, в режимі демона Emacs є й інші проблеми, які заважають мені його використовувати, але я принаймні вирішив цю проблему!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.