Index: dialin-setup.sh =================================================================== diff -u --- dialin-setup.sh (revision 0) +++ dialin-setup.sh (revision 8e2c4c3c8d6653d7d8107731eba6f0ca77091301) @@ -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 Index: run.sh =================================================================== diff -u -rd711fdaf5fdcd83ec84ec7a05965768429483c29 -r8e2c4c3c8d6653d7d8107731eba6f0ca77091301 --- run.sh (.../run.sh) (revision d711fdaf5fdcd83ec84ec7a05965768429483c29) +++ run.sh (.../run.sh) (revision 8e2c4c3c8d6653d7d8107731eba6f0ca77091301) @@ -1,7 +1,12 @@ #!/bin/sh -location() { - if [ -L "$0" ]; then - local filename="$0" + +### Varialbes + +### Functions + +realPath() { + local filename="$1" + if [ -L "$filename" ]; then local linkinfo=$(readlink $filename) local filepath=$(dirname $linkinfo) echo $filepath @@ -10,8 +15,10 @@ fi } -cd $(location) +### Main +cd $(realPath "$0") + export QT_QPA_PLATFORM=xcb export XDG_SESSION_TYPE=xcb python3 ./simulator.py $1 $2 $3 $4 $5 $6 &