AusweisApp2/resources/statemachine.sh.in

29 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
RULE='
s/[[:alnum:]]+\.setInitialState\(s([[:alnum:]]+)\)\;/[*] --> \1/p
s/setInitialState\(s([[:alnum:]]+)\)\;/[*] --> \1/p
s/auto[[:space:]]sFinal[[:space:]]=[[:space:]]addState<FinalState>\(\)\;/state Final #DarkSeaGreen/p
s/[[:alnum:]]+\-.addTransition\(s([[:alnum:]]+)\,[[:space:]]+\&[[:alnum:]]+\:\:fire([[:alnum:]]+)\,[[:space:]]+s([[:alnum:]]+)\)\;/\1 --> \3 : \2/p
s/connect\(s([[:alnum:]]+)\,[[:space:]]+\&[[:alnum:]]+\:\:fire([[:alnum:]]+)\,[[:space:]]+this\,[[:space:]]+\&[[:alnum:]]+\:\:fire([[:alnum:]]+)\)\;/state \3 #DarkSeaGreen\'$'\n'' \1 --> \3 : \2/p
s/auto[[:space:]]+([[:alnum:]]+)[[:space:]]+=\s+addAndConnectState<FinalState>\(\);/\1 --> [*]/p
'
function createImage {
echo "@startuml" > $2.uml
echo " hide empty description" >> $2.uml
sed -E -n -e "$RULE" < $1 >> $2.uml
echo "@enduml" >> $2.uml
cat $2.uml
@JAVA_EXECUTABLE@ -DPLANTUML_LIMIT_SIZE=8192 -jar @PLANTUML@ $2.uml
rm $2.uml
}
createImage @PROJECT_SOURCE_DIR@/src/core/states/CompositeStatePace.cpp @PROJECT_BINARY_DIR@/uml_CompositeStatePace
createImage @PROJECT_SOURCE_DIR@/src/core/states/CompositeStateProcessCvcsAndSetRights.cpp @PROJECT_BINARY_DIR@/uml_CompositeStateProcessCvcsAndSetRights
createImage @PROJECT_SOURCE_DIR@/src/core/states/CompositeStateTrustedChannel.cpp @PROJECT_BINARY_DIR@/uml_CompositeStateTrustedChannel
createImage @PROJECT_SOURCE_DIR@/src/core/controller/ChangePinController.cpp @PROJECT_BINARY_DIR@/uml_ChangePinController
createImage @PROJECT_SOURCE_DIR@/src/core/controller/SelfAuthController.cpp @PROJECT_BINARY_DIR@/uml_SelfAuthController
createImage @PROJECT_SOURCE_DIR@/src/core/controller/AuthController.cpp @PROJECT_BINARY_DIR@/uml_AuthController
createImage @PROJECT_SOURCE_DIR@/src/core/controller/RemoteServiceController.cpp @PROJECT_BINARY_DIR@/uml_RemoteServiceController