Создать избранное Sequel Pro из командной строки?

Я пишу сценарий начальной загрузки, чтобы автоматизировать некоторые настройки компьютера Mac нового разработчика. До сих пор мне удавалось установить SP из командной строки, используя brew cask:

brew cask install sequel-pro

Можно ли затем из командной строки создать «избранное» SP, чтобы, например, новый разработчик уже имел под рукой параметры подключения к локальному ящику Vagrant?


person mopo922    schedule 02.01.2015    source источник


Ответы (1)


Sequel Pro хранит избранное в ~/Library/Application Support/Sequel Pro/Data/Favorites.plist, а пароли хранятся в связке ключей. Итак, мне пришлось сделать 2 вещи:

  1. Запишите правильные данные (в основном в формате XML) в этот файл.
  2. Создайте запись связки ключей для моего пароля к базе данных.

Посмотрев на содержимое моего текущего Favorites.plist, я придумал этот базовый стартовый файл:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Favorites Root</key>
    <dict>
        <key>Children</key>
        <array>
            <dict>
                <key>database</key>
                <string>my_db_name</string>
                <key>host</key>
                <string>127.0.0.1</string>
                <key>id</key>
                <integer>-4414284772604805500</integer>
                <key>name</key>
                <string>homestead</string>
                <key>port</key>
                <string>33060</string>
                <key>socket</key>
                <string></string>
                <key>sshHost</key>
                <string></string>
                <key>sshKeyLocation</key>
                <string></string>
                <key>sshKeyLocationEnabled</key>
                <integer>0</integer>
                <key>sshPort</key>
                <string></string>
                <key>sshUser</key>
                <string></string>
                <key>sslCACertFileLocation</key>
                <string></string>
                <key>sslCACertFileLocationEnabled</key>
                <integer>0</integer>
                <key>sslCertificateFileLocation</key>
                <string></string>
                <key>sslCertificateFileLocationEnabled</key>
                <integer>0</integer>
                <key>sslKeyFileLocation</key>
                <string></string>
                <key>sslKeyFileLocationEnabled</key>
                <integer>0</integer>
                <key>type</key>
                <integer>0</integer>
                <key>useSSL</key>
                <integer>0</integer>
                <key>user</key>
                <string>homestead</string>
            </dict>
        </array>
        <key>IsExpanded</key>
        <true/>
        <key>Name</key>
        <string>FAVORITES</string>
    </dict>
</dict>
</plist>

Я сохранил это как Favorites.plist в том же каталоге, что и мой скрипт начальной загрузки (как упоминалось в исходном вопросе), и добавил в скрипт эти 3 строки:

mkdir -p ~/Library/Application\ Support/Sequel\ Pro/Data/
cp -f Favorites.plist ~/Library/Application\ Support/Sequel\ Pro/Data/
security add-generic-password -U -T "/Applications/Sequel Pro.app" -s "Sequel Pro : homestead (-4414284772604805500)" -a [email protected]/my_db_name -w secret
  • Первая строка проверяет, существует ли путь к каталогу (я еще не пробовал это с совершенно новой установкой SP, поэтому я не знаю, будет ли там полный путь или нет).
  • Вторая строка копирует приведенный выше шаблон в нужное место.
  • The third line adds the database password ("secret") to my Keychain.

Виола!

person mopo922    schedule 29.01.2015
comment
Я пытаюсь сделать то же самое, откуда взялся твой «id» - person ejrowley; 13.05.2015
comment
@ejrowley Я получил его от уже существующего фаворита Sequel Pro. Насколько я могу судить, это произвольный идентификатор, сгенерированный SP. Попробуйте это с моим идентификатором, указанным выше, или со случайным, который вы сгенерируете. Пожалуйста, дайте нам знать, если это сработает! - person mopo922; 13.05.2015