Skip to content

Instantly share code, notes, and snippets.

@Pitometsu
Last active August 29, 2015 14:15
Show Gist options
  • Save Pitometsu/89d2f088d2cdcc88c344 to your computer and use it in GitHub Desktop.
Save Pitometsu/89d2f088d2cdcc88c344 to your computer and use it in GitHub Desktop.
MOGenerator script
#!/bin/sh
#
# mogen.sh
#
# Created by Jean-Denis Muys on 24/02/11.
# Modified by Ryan Rounkles on 15/5/11 to use correct model version and to account for spaces in file paths
# Edited by MANIAK_dobrii for mogenerator demo
# Updated by Pitomets Yuriy on 22/02/14 to be used in Masjid Timetable project.
# Tip:
# Add to Project > Target > Build Rules > Data model files using Script
#
# echo "Running mogen..."
# . "${PROJECT_DIR}/Scripts/mogen.sh"
#
# And set output files to:
# $(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).mom
MOGENERATOR="/opt/local/bin/mogenerator"
MOGENERATOR_DIR="${PROJECT_DIR}/CoreData"
HUMAN_DIR="${MOGENERATOR_DIR}/Entities"
MACHINE_DIR="${MOGENERATOR_DIR}/Autogenerated"
MODEL_HEADER="${MOGENERATOR_DIR}/DataModel.h"
BASE_CLASS=OVCHTTPSessionManager
MOGENERATOR_CALL="$MOGENERATOR
--model '${INPUT_FILE_PATH}'
--machine-dir '${MACHINE_DIR}/'
--human-dir '${HUMAN_DIR}/'
--includeh '${MODEL_HEADER}'
--base-class $BASE_CLASS
--template-var arc=true
--template-var literals=true
--template-var modules=true"
# --v2"
MOMC_CALL="${DEVELOPER_BIN_DIR}/momc
-XD_MOMC_TARGET_VERSION=10.7
'${INPUT_FILE_PATH}'
'${TARGET_BUILD_DIR}/${EXECUTABLE_FOLDER_PATH}/${INPUT_FILE_BASE}.mom'"
echo $MOGENERATOR_CALL
eval $MOGENERATOR_CALL
echo $MOMC_CALL
eval $MOMC_CALL
# TODO: remove unnecessary files after rename
# mogenerator --model ${PROJECT_DIR}/Masjid\ Timetable.xcdatamodel --orphaned | xargs git rm
SCRIPT_NAME=${BASH_SOURCE[0]}
echo "That's all folks, " ${SCRIPT_NAME} " is done."
#!/bin/sh
#
# mogend.sh
#
# Created by Jean-Denis Muys on 24/02/11.
# Modified by Ryan Rounkles on 15/5/11 to use correct model version and to account for spaces in file paths
# Edited by MD for GPNCard
# Updated by Pitomets Yuriy on 22/02/14 to be used in Masjid Timetable project.
# Tip:
# Add to Project > Target > Build Rules > Data model version files using Script
#
# echo "Running mogend..."
# . "${PROJECT_DIR}/Scripts/mogend.sh"
#
# And set output files to:
# $(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).momd
MOGENERATOR="/opt/local/bin/mogenerator"
MOGENERATOR_DIR="${PROJECT_DIR}/CoreData"
HUMAN_DIR="${MOGENERATOR_DIR}/Entities"
MACHINE_DIR="${MOGENERATOR_DIR}/Autogenerated"
MODEL_HEADER="${MOGENERATOR_DIR}/DataModel.h"
BASE_CLASS=OVCHTTPSessionManager
if [ -f "${INPUT_FILE_PATH}/.xccurrentversion" ] ; then
EVALUATE_VERSION_CALL="/usr/libexec/PlistBuddy
\"${INPUT_FILE_PATH}/.xccurrentversion\"
-c 'print _XCCurrentVersionName'"
echo "Evaluate version: " $EVALUATE_VERSION_CALL
CURRENT_VERSION=`$EVALUATE_VERSION_CALL`
echo $CURRENT_VERSION
MODEL_NAME="${INPUT_FILE_PATH}/$CURRENT_VERSION"
else
echo "File \"${INPUT_FILE_PATH}/.xccurrentversion\" doesn't exists."
MODEL_NAME="${INPUT_FILE_PATH}/${INPUT_FILE_BASE}".xcdatamodel
echo "Using \"$MODEL_NAME\"."
fi
MOGENERATOR_CALL="$MOGENERATOR
--model '${MODEL_NAME}'
--machine-dir '${MACHINE_DIR}/'
--human-dir '${HUMAN_DIR}/'
--includeh '${MODEL_HEADER}'
--base-class $BASE_CLASS
--template-var arc=true
--template-var literals=true
--template-var modules=true"
# --v2"
MOMC_CALL="${DEVELOPER_BIN_DIR}/momc
-XD_MOMC_TARGET_VERSION=10.7
'${INPUT_FILE_PATH}'
'${TARGET_BUILD_DIR}/${EXECUTABLE_FOLDER_PATH}/${INPUT_FILE_BASE}.momd'"
echo $MOGENERATOR_CALL
eval $MOGENERATOR_CALL
echo $MOMC_CALL
eval $MOMC_CALL
UNNECESSARY=$($MOGENERATOR --model '${MODEL_NAME}' --orphaned)
if $UNNECESSARY
then
echo "Removing unnecessary files after rename: " $UNNECESSARY
eval $UNNECESSARY | xargs git rm
fi
SCRIPT_NAME=${BASH_SOURCE[0]}
echo "That's all folks, " ${SCRIPT_NAME} " is done."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment