У меня есть проект, который потребует чтения локального репо и сбора diff из самой последней фиксации и предыдущей. Затем мне нужно проделать дополнительную работу с этими различиями (добавить в существующий файл журнала, сделать доступным для технических писателей редактирование существующих документов API с изменениями — можно Slack их или 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 <[email protected]>
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)
Что после проверки кажется ошибкой разрешений Git. Если я pwd
указываю на правильный каталог:
/Users/xxxxxx/Library/Containers/xxxxxx.GitMessenger/Data/Desktop/xxxxxx/Projects/UnifiedSDK/Repo/xxxxxx
и этот каталог был инициирован git:
и у него есть разрешение на чтение/запись для всех. Так что я немного в недоумении прямо сейчас, как заставить это работать. Любая помощь или предложения будут оценены.