Я пытаюсь создать приложение MacOS с использованием Swift 4 на основе Homebrew Cask .
Для тех, кто не знаком, Homebrew Cask - это простой способ скачать и установитьПриложения Mac из вашего терминала.
Информация о каждой бочке (приложении) хранится в файле Ruby.
Моя идея состоит в том, чтобы проанализировать файлы ruby и сохранить всю информацию в объекте приложения, а затем использовать ее для простой загрузки и установки приложений для пользователя из приложения Mac.
ВотПример файла бочки:
cask 'google-chrome' do
version '71.0.3578.98'
sha256 'ddb68d2976adcc6f1bcf005ab21a395e5028352c76ff7e700e10e1e57f8cac95'
url 'https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg'
appcast 'https://omahaproxy.appspot.com/history?os=mac;channel=stable'
name 'Google Chrome'
homepage 'https://www.google.com/chrome/'
auto_updates true
conflicts_with cask: [
'google-chrome-beta',
'google-chrome-dev',
]
depends_on macos: '>= :yosemite'
app 'Google Chrome.app'
uninstall launchctl: [
'com.google.keystone.agent',
'com.google.keystone.daemon',
]
zap trash: [
'/Library/Caches/com.google.SoftwareUpdate.*',
'/Library/Google/Google Chrome Brand.plist',
'/Library/Google/GoogleSoftwareUpdate',
'~/Library/Application Support/Google/Chrome',
'~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.google.chrome.app.*.sfl*',
'~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.google.chrome.sfl*',
'~/Library/Caches/Google/Chrome',
'~/Library/Caches/com.google.Chrome',
'~/Library/Caches/com.google.Chrome.helper.*',
'~/Library/Caches/com.google.Keystone',
'~/Library/Caches/com.google.Keystone.Agent',
'~/Library/Caches/com.google.SoftwareUpdate',
'~/Library/Google/Google Chrome Brand.plist',
'~/Library/Google/GoogleSoftwareUpdate',
'~/Library/LaunchAgents/com.google.keystone.agent.plist',
'~/Library/Logs/GoogleSoftwareUpdateAgent.log',
'~/Library/Preferences/com.google.Chrome.plist',
'~/Library/Preferences/com.google.Keystone.Agent.plist',
'~/Library/Saved Application State/com.google.Chrome.app.*.savedState',
'~/Library/Saved Application State/com.google.Chrome.savedState',
'~/Library/WebKit/com.google.Chrome',
],
rmdir: [
'/Library/Google',
'~/Library/Application Support/Google',
'~/Library/Caches/Google',
'~/Library/Google',
]
end
Мой вопрос: каков наилучший способ для анализа файла, подобного этому, из Swift?В настоящее время это делается построчно и проверяется наличие определенных имен переменных ('version', 'url' и т. Д.)
Не уверен, что существует лучший способ, о котором я не знаю, так как я 'Я довольно новичок в программировании Swift.Любая помощь будет оценена!