Index: Leahi/scripts/createWorkspace.sh =================================================================== diff -u -ra5d3e546e52d65e24337152d60e1bcc580b07198 -r73e461c7331cab50aa8314ef838ad1e0f844b6ff --- Leahi/scripts/createWorkspace.sh (.../createWorkspace.sh) (revision a5d3e546e52d65e24337152d60e1bcc580b07198) +++ Leahi/scripts/createWorkspace.sh (.../createWorkspace.sh) (revision 73e461c7331cab50aa8314ef838ad1e0f844b6ff) @@ -1,5 +1,7 @@ #!/bin/bash +# └ β git archive --remote=git@bitbucket.org:diality-cloud/scripts.git master Leahi/scripts/* | tar -x --strip-components=2 + DIR_PRJ="$1" DIR_ELY="ely" DIR_LUIS="luis" @@ -94,7 +96,9 @@ cd $DIR_TEST clone leahi-simulator simulator clone leahi-sw.plugins.sim plugins simulator - clone leahi-dialin dialin simulator dialin/leahi_dialin + # clone leahi-dialin dialin simulator dialin/leahi_dialin + cp $WKS/dialin-setup.sh ./simulator + ./simulator/dialin-setup.sh clone leahi-testsuites testsuites clone leahi-unittests unittests cd .. @@ -150,8 +154,8 @@ confirm workspace -cloneEly -cloneLuis +#cloneEly +#cloneLuis cloneLeaDvt -cloneLeaTls -cloneLeaCld +#cloneLeaTls +#cloneLeaCld Index: Leahi/scripts/dialin-setup.sh =================================================================== diff -u --- Leahi/scripts/dialin-setup.sh (revision 0) +++ Leahi/scripts/dialin-setup.sh (revision 73e461c7331cab50aa8314ef838ad1e0f844b6ff) @@ -0,0 +1,168 @@ +#!/bin/bash + +### Variables +DIALIN_FOLDER="../dialin" +DIALIN_SYMLINK="dialin" +DIALIN_SOURCE="$DIALIN_FOLDER/leahi_dialin" +DIALIN_REPO="git@bitbucket.org:diality-cloud/leahi-dialin.git" +DIALIN_BRANCH="staging" + +### Errors +ERR_MISSING_PARAM_FOLDERNAME=1 +ERR_MISSING_PARAM_FILENAME=2 +ERR_FAILED_CLONE=3 +ERR_FAILED_EXISTS_FOLDER=4 +ERR_FAILED_EXISTS_FILE=5 +ERR_FAILED_TEST_REPOSITORY=6 +ERR_FAILED_SYMLINK=7 +ERR_FAILED_CHECKOUT=8 +ERR_FAILED_SPARSE_INIT=9 +ERR_FAILED_SPARSE_SET=10 + +### Notifications +TXT_EXIST_ALREADY="Already exists" +TXT_SUCCEED_CLONE="The repository cloned successfully" +TXT_SUCCEED_SETUP="The repository successfully set up" +TXT_CHECKOUT_BRANCH="The repository set to chekout on" + +### Functions +function succeed() { + if ! (( $? )); then + echo true + return + fi + echo false +} + +function existsFolder() { + local foldername="$1" + if [ "$foldername" == "" ]; then + echo "ERR_MISSING_PARAM_FOLDERNAME" + exit $ERR_MISSING_PARAM_FOLDERNAME + fi + if [ -d "$foldername" ]; then + echo true + return + fi + echo false +} + +function existsLink() { + local filename="$1" + if [ "$filename" == "" ]; then + echo "ERR_MISSING_PARAM_FILENAME" + exit $ERR_MISSING_PARAM_FILENAME + fi + if [ -L "$filename" ]; then + echo true + return + fi + echo false +} + +function validLink() { + if [ $( readlink $DIALIN_SYMLINK ) == "$DIALIN_SOURCE" ]; then + echo true + fi + echo false +} + +function realPath() { + local filename="$1" + if $( existsLink $filename ); then + if [ -L "$filename" ]; then + local linkinfo=$(readlink $filename) + local filepath=$(dirname $linkinfo) + echo $filepath + return + fi + fi + echo $(dirname "$0") +} + +function isRepo() { + if ! $(existsFolder "$1"); then + echo "ERR_FAILED_EXISTS_FOLDER" + exit $ERR_FAILED_EXISTS_FOLDER + fi + git -C "$1" status > /dev/null 2>&1 + echo $(succeed) +} + +### dialin specific +function clone() { + if $( existsFolder $DIALIN_FOLDER ); then + echo "$TXT_EXIST_ALREADY $DIALIN_SOURCE" + return + fi + echo "Clonning ..." + git clone "$DIALIN_REPO" "$DIALIN_FOLDER" -b "$DIALIN_BRANCH" + if ! $( succeed ); then + echo "ERR_FAILED_CLONE" + exit $ERR_FAILED_CLONE + fi +} + +function setup() { + if ! $( isRepo "$DIALIN_FOLDER" ); then + echo "ERR_FAILED_TEST_REPOSITORY" + exit $ERR_FAILED_TEST_REPOSITORY + fi + + if ! $( existsFolder $DIALIN_SOURCE ); then + echo "$ERR_FAILED_EXISTS_FOLDER $DIALIN_SOURCE" + exit $ERR_FAILED_EXISTS_FOLDER + fi + + pushd "$DIALIN_FOLDER" > /dev/null 2>&1 + + git sparse-checkout init + if ! $( succeed ); then + echo "ERR_FAILED_SPARSE_INIT" + exit $ERR_FAILED_SPARSE_INIT + fi + + git sparse-checkout set \ + 'leahi_dialin/ui' \ + 'leahi_dialin/common' \ + 'leahi_dialin/protocols' \ + 'leahi_dialin/utils/conversions.py' \ + '!leahi_dialin/common/__init__.py' + if ! $( succeed ); then + echo "ERR_FAILED_SPARSE_SET" + exit $ERR_FAILED_SPARSE_SET + fi + + popd > /dev/null 2>&1 +} + +function link() { + if $( existsLink $DIALIN_SYMLINK ); then + if ! $( validLink ); then + rm $DIALIN_SYMLINK + else + return + fi + fi + + ln -s $DIALIN_SOURCE $DIALIN_SYMLINK + if ! $( succeed ); then + echo "ERR_FAILED_SYMLINK" + exit $ERR_FAILED_SYMLINK + fi +} + +### Main +if [ "$1" != "" ]; then + DIALIN_BRANCH="$1" + echo "$TXT_CHECKOUT_BRANCH $DIALIN_BRANCH" +fi + +cd "$(realPath "$0")" + +clone +setup +link + +echo "$TXT_SUCCEED_SETUP in $DIALIN_SYMLINK" +exit 0