У меня есть проект, который потребует чтения локального репо и сбора различий из самого последнего коммита и предыдущего. Затем мне нужно проделать дополнительную работу с этими различиями (добавить в существующий файл журнала, сделать доступным для технических авторов редактирование существующих документов API с изменениями - возможно, ослабить их или API в Jira и создать тикет (как этот параметр, когда он выходит)след).
Я могу выполнять работу на уровне йомана в AppleScript, вызывая сценарии оболочки при необходимости, затем анализируя данные и передавая очищенные данные в различные приложения / сайты, которые мне нужны. Но другие, менеетехнические специалисты также будут использовать это приложение, и было бы неплохо дать им простой пользовательский интерфейс для работы.
В любом случае, после долгих поисков в Google, SO и других источниках я смог получить приложение MacOSработает, что может вызвать AppleScript, и теперь я столкнулся со стеной ...
Я могу запустить этот AppleScript из редактора сценариев, и он отлично работает:
set strGitLog to do shell script "cd ~/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx && git log -p -- file1.html"
"commit c39c6bb004d2e104b3f8e15a6125e3d68a5323ef
Author: Steve <xxxxxx@xxxxxx.com>
Date: Tue Oct 22 15:42:13 2019 -0400
Added deprecation warning to file1
diff --git a/file1.html b/file1.html
index b7af22b..9fdc781 100644
--- a/file1.html
+++ b/file1.html
@@ -51,6 +51,8 @@
<h2>Class Description</h2>
<p style=\"margin-bottom:10px;\">This is the description of the class</p>
+ <p style=\"margin-bottom:10px;\">Warning: This class is scheduled to be deprecated.</p>
+
<h3>Arguments:</h3>
<p style=\"margin-bottom:10px;\">These are the arguments that the class accepts</p>
...
, но, если я помещаю этот скрипт в приложение MacOS:
script gitMessenger
property parent : class "NSObject"
to readMessage()
set strGitLog to do shell script "cd ~/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx && git log -p -- file1.html"
log strGitLog
end readMessage
end script
Я получаю это сообщение об ошибке в журнале:
fatal: Unable to read current working directory: Operation not permitted (error 128)
Которое после проверкиng, похоже, ошибка разрешений Git. Если я pwd
, я указываю на правильный каталог:
/Users/xxxxxx/Library/Containers/xxxxxx.GitMessenger/Data/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx
, и в этом каталоге запущен git:

и имеет разрешение на чтение / запись каждому. Так что я сейчас немного растерялся, как заставить это работать. Любая помощь или предложения будут оценены.