Commit 63ffbef109a4a2efabb9f0b32801afc79fd7f259

Authored by Steven de Ridder
1 parent 8febebf2

Added submodule script and configuration.

.gitignore
1 build/ 1 build/
2 CMakeLists.txt.user 2 CMakeLists.txt.user
  3 +
  4 +cmake/
  5 +versioning/
  6 +logutils/
  7 +
  8 +.gitmodules
scripts/setup_submodules 0 → 100755
  1 +#!/bin/bash
  2 +
  3 +# ===============================================
  4 +# == Setting some environment variables
  5 +# ===============================================
  6 +GIT_URL_SUBS="http://gitlab.osdev.nl/open_source"
  7 +FUNC_RESULT="-1"
  8 +
  9 +# Name : print_usage_exit()
  10 +# Description : Print the way this script is intended to be used and exit.
  11 +# Parameters : None.
  12 +# Returns : err_code 1 to the Operating System
  13 +# --------------------------------------------------------------------------------------
  14 +function print_usage_exit()
  15 +{
  16 + echo "Usage $0 -i|--install|-u|--update"
  17 + echo " -i or --install Install the submodules mentioned in the submodules.list"
  18 + echo " -u or --update Update the submodules mentioned in the submodules.list"
  19 + echo " "
  20 + exit 1
  21 +}
  22 +
  23 +# Name : check_top_or_sub
  24 +# Description : Determine if we're running in a "single" lib-build or part of a
  25 +# "meta"-repository ( submodule ).
  26 +# Parameters : None
  27 +# Returns : Updates the value FUNC_RESULT.
  28 +# -1 - We're neither a git-repo or submodule.
  29 +# 0 - We're a submodule
  30 +# 1 - We're a top-repo ( Single library )
  31 +# --------------------------------------------------------------------------------------
  32 +function check_top_or_sub()
  33 +{
  34 + # This function checks if we're the top-repository.
  35 + # In that case we need the submodules.. If we're already a submodule,
  36 + # we simply exit this script with a message
  37 + if [ -e ./.git ]; then
  38 + FUNC_RESULT="1"
  39 + return
  40 + elif [ -e ../.git ]; then
  41 + if [ -e ../.submodules ]; then
  42 + echo "Seems like we're already a submodule. Nothing to do here."
  43 + FUNC_RESULT="0"
  44 + return
  45 + fi
  46 + fi
  47 + FUNC_RESULT="-1"
  48 + return
  49 +}
  50 +
  51 +# Name : check_working_dir
  52 +# Description : If we're in the top of our repo, we can run this script further.
  53 +# Parameters : None.
  54 +# Returns : Updates the value FUNC_RESULT.
  55 +# -1 - Not used.
  56 +# 0 - We're not on the top-level
  57 +# 1 - We're at the top-level. Good to go.
  58 +# --------------------------------------------------------------------------------------
  59 +function check_working_dir()
  60 +{
  61 + FUNC_RESULT="-1"
  62 + # Check if we're in the top-level directory of our repository.
  63 + if [ -f ./scripts/submodules.list ]; then
  64 + # We're good to go
  65 + FUNC_RESULT="1"
  66 + return
  67 + fi
  68 + FUNC_RESULT="0"
  69 + return
  70 +}
  71 +
  72 +# Name : read_submodules
  73 +# Description : Read the list of submodules needed for this project
  74 +# Parameters : None
  75 +# Returns : Updates the value FUNC_RESULT
  76 +# 0 - Module list was not found
  77 +# 1 - Module list was found and read.
  78 +# --------------------------------------------------------------------------------------
  79 +function read_submodules()
  80 +{
  81 + FUNC_RESULT="-1"
  82 + if [ -e ./scripts/submodules.list ]; then
  83 + source ./scripts/submodules.list
  84 + FUNC_RESULT="1"
  85 + return
  86 + fi
  87 +
  88 + echo "Submodules list not found...."
  89 + FUNC_RESULT="0"
  90 + return
  91 +}
  92 +
  93 +# Name : add_submodules
  94 +# Description : Configure the repo to add the submodules.
  95 +# Parameters : None.
  96 +# Returns : None.
  97 +# --------------------------------------------------------------------------------------
  98 +function add_submodules()
  99 +{
  100 + echo -e "Adding SubModule(s)."
  101 + for SUB_MODULE in ${SUB_MODULES}
  102 + do
  103 + echo -e "< ${SUB_MODULE} >"
  104 + git submodule add -f ${GIT_URL_SUBS}/${SUB_MODULE}.git ${SUB_MODULE}
  105 + git config submodule.${SUB_MODULE}.url ${GIT_URL_SUBS}/${SUB_MODULE}.git
  106 + done
  107 +}
  108 +
  109 +# Name : get_submodules
  110 +# Description : Actually get the submodules from gitlab and add them.
  111 +# Parameters : None
  112 +# Returns : None
  113 +# --------------------------------------------------------------------------------------
  114 +function get_submodules()
  115 +{
  116 + git submodule update --init --recursive
  117 +}
  118 +
  119 +# Name : update_submodules
  120 +# Description : Update the submodules already added.
  121 +# Parameters : None
  122 +# Returns : None
  123 +# --------------------------------------------------------------------------------------
  124 +function update_submodules()
  125 +{
  126 + git submodule update --recursive
  127 +}
  128 +
  129 +# =============================================================================
  130 +# == T H E M A I N E N T R Y O F T H I S S C R I P T ==
  131 +# =============================================================================
  132 +check_top_or_sub
  133 +if [ "${FUNC_RESULT}" == "0" ]; then
  134 + echo "Seems like we're a submodule already or not part of a repository."
  135 + exit 0
  136 +fi
  137 +
  138 +check_working_dir
  139 +if [ "${FUNC_RESULT}" == "0" ]; then
  140 + echo "Go to the top of this repository and type : scripts/setup_submodules [-i|--install]"
  141 + exit 0
  142 +fi
  143 +
  144 +read_submodules
  145 +
  146 +case "$1" in
  147 + -i*|--install*)
  148 + echo "Installing submodules for this repository ( ${PWD} )"
  149 + add_submodules
  150 + get_submodules
  151 + ;;
  152 + -u*|--update*)
  153 + echo "Update submodules : ${SUB_MODULES}"
  154 + update_submodules
  155 + ;;
  156 + *)
  157 + echo "No parameters found..."
  158 + print_usage_exit
  159 + ;;
  160 +esac
  161 +
scripts/submodules.list 0 → 100644
  1 +SUB_MODULES="versioning
  2 +cmake
  3 +logutils"