https://gist.github.com/3118596
Существует реализация для JavaScript. Он имеет функции для получения k-комбинаций и всех комбинаций массива любых объектов. Примеры:
k_combinations([1,2,3], 2)
-> [[1,2], [1,3], [2,3]]
combinations([1,2,3])
-> [[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
Здесь хорошее практическое руководство
существует 7 типов сценариев, чем можно запустить во время Процесса установки:
InstallationCheck: Этот сценарий запускается в начале процесса установки (даже перед шагом Аутентификации). Это может использоваться, чтобы проверить, что Пакет может быть установлен на этом компьютере.
VolumeCheck: Этот сценарий запускается на "Избранном Целевом" шаге. Это используется для определения, на котором объеме может быть установлен Пакет.
предварительный полет: Этот сценарий запускается сразу после того, как пользователь нажал на кнопку "Install".
предварительно устанавливают / предварительное обновление: Этот сценарий запускается после сценария перед полетом, если существует один (в случае единственной установки пакета); иначе сразу после того, как пользователь нажал на кнопку "Install".
, Как Вы видите, существует 2 типа сценариев здесь. Предварительно устанавливание того запускается, когда Пакет никогда не устанавливался (с точки зрения Installer.app), предварительное обновление, каждый запускается, когда Пакет был уже установлен. Чтобы определить, был ли Пакет уже установлен или нет, Installer.app взглянул на содержание следующего каталога:/Library/Receipts. Если существует файл по имени PackageName.pkg в нем, то Пакет был уже установлен, иначе это - первая установка.
постустановка / постобновление: Этот сценарий запускается после того, как файлы в пакете были установлены. Посмотрите (предварительно установите / предварительное обновление) видеть, какой запускается.
послеполетный: Этот сценарий запускается после постустановки / сценарий постобновления или когда пакет был установлен.
Эта статья PackageMaker How-To устарела, но в ней есть некоторая очень полезная информация о скриптах примерно наполовину. Ищите таблицу, показывающую переменные командной строки, как они видны из shell'а и perl, плюс некоторые полезные значения состояния выхода.