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


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.