Skip to content

Commit

Permalink
umbrello is supported fully.
Browse files Browse the repository at this point in the history
  • Loading branch information
mostafa barmshory committed Jan 15, 2015
1 parent d96d9d3 commit 1975d52
Show file tree
Hide file tree
Showing 5 changed files with 147 additions and 47 deletions.
17 changes: 9 additions & 8 deletions bin/boostan
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@ TOOL_PATH=$(realpath $0)
BOOSTAN_INS_DIR=$(dirname $(dirname $TOOL_PATH))


source $BOOSTAN_INS_DIR/bin/script/log.sh
source $BOOSTAN_INS_DIR/bin/script/configure.sh
source $BOOSTAN_INS_DIR/bin/script/build.sh
source $BOOSTAN_INS_DIR/bin/script/init.sh
#source $BOOSTAN_INS_DIR/bin/script/make.sh
source $BOOSTAN_INS_DIR/bin/script/update.sh
source $BOOSTAN_INS_DIR/bin/script/clean.sh
source $BOOSTAN_INS_DIR/bin/script/disconnect.sh
. $BOOSTAN_INS_DIR/bin/script/log.sh
. $BOOSTAN_INS_DIR/bin/script/configure.sh
. $BOOSTAN_INS_DIR/bin/script/umbrello.sh
. $BOOSTAN_INS_DIR/bin/script/build.sh
. $BOOSTAN_INS_DIR/bin/script/init.sh
#. $BOOSTAN_INS_DIR/bin/script/make.sh
. $BOOSTAN_INS_DIR/bin/script/update.sh
. $BOOSTAN_INS_DIR/bin/script/clean.sh
. $BOOSTAN_INS_DIR/bin/script/disconnect.sh

boostan_log "Print the configuration table."
if [ "$BOOSTAN_VERBOSE" = true ] ; then
Expand Down
77 changes: 39 additions & 38 deletions bin/script/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,6 @@
#################################################################################
#configure

#Make Project diagrams
function boostan_build_umbrello() {
boostan_log "Looking for umbrello files in \'%s\'" "$BOOSTAN_WRK_DIR/$1"
if [ ! -d "$BOOSTAN_WRK_DIR/$1" ]; then
boostan_log "The path not exist \'%s\'" "$BOOSTAN_WRK_DIR/$1"
return 1;
fi
find "$BOOSTAN_WRK_DIR/$1" -type f -regex ".*\.\(xmi\)" -print0 | while read -d $'\0' file
do
boostan_log "Processing %s file..." "$file"
filename=$(basename "$file")
directoryname=$(dirname "$file")
extension="${filename##*.}"
filename="${filename%.*}"
echo FILE: "${directoryname}/${filename}.pdf"
mkdir "$BOOSTAN_WRK_DIR/$1/$filename"
umbrello --export svg \
--directory "$BOOSTAN_WRK_DIR/$1/$filename" \
"$file"
done
return 0;
}

#
# تمام SVG‌ها را به PS تبدیل می‌کند
#
Expand Down Expand Up @@ -108,12 +85,12 @@ function boostan_build_src() {

#Make new document
cd "$BOOSTAN_SRC_DIR"
xelatex -synctex=1 -interaction=nonstopmode --src-specials main.tex
xindy -L persian -C utf8 -I xindy -M main -t main.glg -o main.gls main.glo
bibtex main
makeindex main.idx
xelatex -synctex=1 -interaction=nonstopmode --src-specials main.tex
xelatex -synctex=1 -interaction=nonstopmode --src-specials main.tex
xelatex -synctex=1 -interaction=nonstopmode --src-specials main.tex 1>/dev/null
xindy -L persian -C utf8 -I xindy -M main -t main.glg -o main.gls main.glo 1>/dev/null
bibtex main 1>/dev/null
makeindex main.idx 1>/dev/null
xelatex -synctex=1 -interaction=nonstopmode --src-specials main.tex 1>/dev/null
xelatex -synctex=1 -interaction=nonstopmode --src-specials main.tex 1>/dev/null

#Deploy
cp main.pdf "$BOOSTAN_WRK_DIR/output/${PROJECT_NAME}.pdf"
Expand All @@ -123,18 +100,42 @@ function boostan_build_src() {
}

function boostan_build(){
image_path=(image src/image attachment)

boostan_log "Trying to build the project umbrello files"
boostan_build_umbrello image
boostan_build_umbrello src/image
boostan_build_umbrello attachment
for image in "${image_path[@]}"
do
if [ -d "$BOOSTAN_WRK_DIR/$image" ]; then
boostan_umbrello_check $image
if (($? > 0)); then
boostan_error "Project need %s but it's not installed" "$BOOSTAN_TOOL_UMBRELLO"
exit 1
else
if [ "$BOOSTAN_TOOL_UMBRELLO_NEED" = "true" ]; then
boostan_umbrello_build $image
else
boostan_log "No *.xmi file found in the %s" "$image"
fi
fi
fi
done

boostan_log "Trying to build the project SVG files"
boostan_build_svg image
boostan_build_svg src/image
boostan_build_svg attachment
for image in "${image_path[@]}"
do
if [ -d "$BOOSTAN_WRK_DIR/$image" ]; then
boostan_build_svg $image
fi
done

boostan_log "Trying to build the project ODG files"
boostan_build_odg image
boostan_build_odg src/image
boostan_build_odg attachment
for image in "${image_path[@]}"
do
if [ -d "$BOOSTAN_WRK_DIR/$image" ]; then
boostan_build_odg $image
fi
done

boostan_log "Trying to build the project source"
boostan_build_src
return 0;
Expand Down
1 change: 1 addition & 0 deletions bin/script/clean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ function boostan_clean_src() {
}

function boostan_clean(){
boostan_umbrello_clean
boostan_clean_project
boostan_clean_odg image
boostan_clean_odg src/image
Expand Down
9 changes: 8 additions & 1 deletion bin/script/log.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,19 @@

function boostan_log(){
if [ "$BOOSTAN_VERBOSE" = true ] ; then
printf "[Boostan $BOOSTAN_VERSION] "
printf "[LOG ] "
printf "$@"
printf "\n"
fi
}

function boostan_error(){
printf "[ERROR] "
printf "$@"
printf "\n"
}


function boostan_log_print(){
printf "| %20s | %110s |\n" "$1" "$2"
}
Expand Down
90 changes: 90 additions & 0 deletions bin/script/umbrello.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/bin/bash
#################################################################################
# حق نشر 1392-1402 دانش پژوهان ققنوس
# حقوق این اثر محفوظ است.
#
# استفاده مجدد از متن و یا نتایج این اثر در هر شکل غیر قانونی است مگر اینکه متن حق
# نشر بالا در ابتدای تمامی مستندهای و یا برنامه‌های به دست آمده از این اثر
# بازنویسی شود. این کار باید برای تمامی مستندها، متنهای تبلیغاتی برنامه‌های
# کاربردی و سایر مواردی که از این اثر به دست می‌آید مندرج شده و در قسمت تقدیر از
# صاحب این اثر نام برده شود.
#
# نام گروه دانش پژوهان ققنوس ممکن است در محصولات به دست آمده از این اثر درج
# نشود که در این حالت با مطالبی که در بالا اورده شده در تضاد نیست. برای اطلاع
# بیشتر در مورد حق نشر آدرس زیر مراجعه کنید:
#
# http://dpq.co.ir/licence
#################################################################################

BOOSTAN_TOOL_UMBRELLO=umbrello
BOOSTAN_TOOL_UMBRELLO_EXIST=false
BOOSTAN_TOOL_UMBRELLO_NEED=false

#
# بررسی برنامه‌های umbrello
#
# برای کار با این پروژها باید مجموعه‌ای از ابزارها در سیستم نصب شده باشد. در اینجا
# بررسی می‌کنیم که این ابزارها نصب شده باشد.
#
#
# \return مقدار 0 اگر ابزارها موجود باشد و 1 اگر این ابزارها وجود نداشته باشد.
#
function boostan_umbrello_check() {
BOOSTAN_TOOL_UMBRELLO_NEED=false
if ! hash "$BOOSTAN_TOOL_UMBRELLO" 2>/dev/null; then
BOOSTAN_TOOL_UMBRELLO_EXIST=false
boostan_log "Boostan require %s but it's not installed." "$BOOSTAN_TOOL_UMBRELLO"
else
BOOSTAN_TOOL_UMBRELLO_EXIST=true
boostan_log "Boostan use %s and it's installed." "$BOOSTAN_TOOL_UMBRELLO"
fi
find "$BOOSTAN_WRK_DIR/$1" -type f -regex ".*\.\(xmi\)" -print0 | while read -d $'\0' file
do
BOOSTAN_TOOL_UMBRELLO_NEED=true
if [ "$BOOSTAN_TOOL_UMBRELLO_EXIST" = "true" ]; then
boostan_log "Boostan requires %s and it's installed." "$BOOSTAN_TOOL_UMBRELLO"
return 0
else
boostan_error "Boostan requires %s but it's not installed." "$BOOSTAN_TOOL_UMBRELLO"
return 1
fi
done
BOOSTAN_TOOL_UMBRELLO_NEED=false
boostan_log "Boostan does not require %s in the %s." "$BOOSTAN_TOOL_UMBRELLO" "$1"
return 0
}

#
# نمودارهای UML را ایجاد می‌کند
#
# در اینجا فرض شده که تمام نمودارها با استفاده از نرم‌افزار Umbrella ایجاد شده است
# از این رو تمام مسیرهای تصویر و پروژه برای یافتن این پروژه‌ها جستجو شده و نمودارهای
# معادل آن ایجاد می‌شود.
#
# \param $1 مسیر جستجو و تولید نمودارها
#
function boostan_umbrello_build() {
boostan_log "Looking for umbrella files in \'%s\'" "$BOOSTAN_WRK_DIR/$1"
if [ ! -d "$BOOSTAN_WRK_DIR/$1" ]; then
boostan_log "The path not exist \'%s\'" "$BOOSTAN_WRK_DIR/$1"
return 1;
fi
find "$BOOSTAN_WRK_DIR/$1" -type f -regex ".*\.\(xmi\)" -print0 | while read -d $'\0' file
do
boostan_log "Processing %s file..." "$file"
filename=$(basename "$file")
directoryname=$(dirname "$file")
extension="${filename##*.}"
filename="${filename%.*}"
echo FILE: "${directoryname}/${filename}.pdf"
mkdir "$BOOSTAN_WRK_DIR/$1/$filename"
umbrello --export svg \
--directory "$BOOSTAN_WRK_DIR/$1/$filename" \
"$file"
done
return 0;
}

function boostan_umbrello_clean () {
return 0;
}

0 comments on commit 1975d52

Please sign in to comment.