Так, граждане линуксоиды, нужна помощь.

У меня есть проект в SVN и я хочу, чтобы в моем проекте в xCode номер ревизии при компиляции ставился в номер последнего коммита в SVN.

Опытным путем я выяснил следующее:

  1. Команда svn info <repository_url> | awk '/^Last Changed Rev:/ {print $NF}' | sort -n | tail -n 1 возвращает мне строку с номером версии.
  2. Команда /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:5:DefaultValue <version_number>" Root.plist записывает версию в файл.
Мне нужно их объединить в один скрипт, который можно запустить при компиляции. Чтобы делалась сначала svn info, а затем полученная версия записывалась с помощью PlistBuddy.
Гуглить я это буду полгода (потому что просто не знаю, что гуглить), посему надеюсь на вашу помощь. Насколько я понимаю, для человека, хоть чуть-чуть в линуксе и скриптах разбирающегося — задача плевая.
Tagged with →  
Share →

2 Responses to Нужна помощь

  1. Игорь says:

    Уж не знаю, решил проблему или нет, но раз здесь и в ЖЖ нет ответа на твой вопрос, я отвечу
    Если совсем примитивно, то содержимое скрипта:

    #!/bin/bash

    # Прописываем переменную PATH, чтобы каждый раз не писать пути к прогам
    PATH="/usr/local/bin:/usr/bin:/bin"

    # Получаем строку с версией
    Version="$(svn info | awk '/^Last Changed Rev:/ {print $NF}' | sort -n | tail -n 1)"

    # Записываем строку в файл
    /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:5:DefaultValue $Version" Root.plist

    Как-то так. Проверять всё ли правильно влом, но на первый взгляд должно работать.

    • Игорь says:

      Сайт съел адрес репозитория. :)
      Ещё раз повторю:

      #!/bin/bash

      # Прописываем переменную PATH, чтобы каждый раз не писать пути к прогам
      PATH="/usr/local/bin:/usr/bin:/bin"

      # Получаем строку с версией
      Version="$(svn info 'адрес_репозитория' | awk '/^Last Changed Rev:/ {print $NF}' | sort -n | tail -n 1)"

      # Записываем строку в файл
      /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:5:DefaultValue $Version" Root.plist

Leave a Reply

Войти с помощью: 

Your email address will not be published. Required fields are marked *

PageLines