ibizlabcli 6.2 KB
Newer Older
sq3536's avatar
sq3536 committed
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/bin/bash
if [ $CLI_UPDATE ];then
    if [ "TRUE" == `echo $CLI_UPDATE` ];then
        mvn package
    fi
    if [ "true" == `echo $CLI_UPDATE` ];then
        mvn package
    fi
    if [ "True" == `echo $CLI_UPDATE` ];then
        mvn package
    fi    
fi

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

if [ $GIT_REPO ];then
    echo "single mode (single git repo's checkout->generate->push)."
    GIT_PROD_REPO=$GIT_REPO
    GIT_DEV_REPO=$GIT_REPO
    if [ ! $GIT_BRANCH ];then
        GIT_BRANCH=master
        echo "env GIT_BRANCH does not exist,  using 'master'."
    fi
    GIT_PROD_BRANCH=$GIT_BRANCH
    GIT_DEV_BRANCH=$GIT_BRANCH
    if [ ! $GIT_USER_NAME ];then
        GIT_USER_NAME=ibizlabcli
        echo "env GIT_USER_NAME does not exist,  using 'ibizlabcli'."
    fi
    if [ ! $GIT_USER_EMAIL ];then
        GIT_USER_EMAIL=$GIT_USER_NAME@ibizsys.net
        echo "env GIT_USER_EMAIL does not exist,  using '$GIT_USER_NAME@ibizsys.net'."
    fi
    GIT_DEV_USER_NAME=$GIT_USER_NAME
    GIT_DEV_USER_EMAIL=$GIT_USER_EMAIL
fi

sq3536's avatar
sq3536 committed
37 38
if [ ! $GIT_PROD_REPO ];then
    if [ ! $CODEGEN_CODE_URL ];then
39 40 41 42 43 44 45
        if [ -d "/generator/output" ];then
            echo "file mode (generate -> /generator/output)."
            FASTOUTPUT=TRUE
        else
            echo "unknow prod git, env GIT_PROD_REPO or CODEGEN_CODE_URL does not exist."
            exit 1
        fi
sq3536's avatar
sq3536 committed
46 47 48 49 50 51 52 53 54 55 56 57
    fi
    if [ $CODEGEN_CODE_PASSWORD ];then
        if [[ ! "${CODEGEN_CODE_URL}" =~ "@" ]];then
            CODEGEN_CODE_URL=${CODEGEN_CODE_URL/#"http://"/"http://oauth2:${CODEGEN_CODE_PASSWORD}@"}
        else
            CODEGEN_CODE_URL=${CODEGEN_CODE_URL#*@}
            CODEGEN_CODE_URL="http://oauth2:${CODEGEN_CODE_PASSWORD}@"$CODEGEN_CODE_URL
        fi
    fi
    GIT_PROD_REPO=$CODEGEN_CODE_URL
fi

58 59 60 61 62 63 64 65 66 67 68
if [ ! $FASTOUTPUT ];then
    echo "extension mode (prod git repo's checkout  ->  generate  -> dev git repo's push)."


    if [ ! $GIT_PROD_BRANCH ];then
        if [ ! $CODEGEN_CODE_BRANCH ];then
            GIT_PROD_BRANCH=master
            echo "env GIT_PROD_BRANCH or CODEGEN_CODE_BRANCH does not exist,  using 'master'."
        else
            GIT_PROD_BRANCH=$CODEGEN_CODE_BRANCH
        fi
sq3536's avatar
sq3536 committed
69 70
    fi

71 72 73 74 75 76
    if [ ! $GIT_DEV_REPO ];then
        if [ ! $CODEGEN_RO_URL ];then
            echo "unknow dev git, env GIT_DEV_REPO or CODEGEN_RO_URL does not exist."
            exit 1
        fi
        GIT_DEV_REPO=$CODEGEN_RO_URL
sq3536's avatar
sq3536 committed
77 78
    fi

79 80 81 82 83 84 85
    if [ ! $GIT_DEV_BRANCH ];then
        if [ ! $CODEGEN_RO_BRANCH ];then
            GIT_DEV_BRANCH=master
            echo "env GIT_DEV_BRANCH or CODEGEN_RO_BRANCH does not exist,  using 'master'."
        else
            GIT_DEV_BRANCH=$CODEGEN_RO_BRANCH
        fi
sq3536's avatar
sq3536 committed
86
    fi
87

sq3536's avatar
sq3536 committed
88 89 90 91 92
fi


mkdir -p /generator
cd /generator
93 94 95 96 97 98 99 100 101 102 103 104
if [ $FASTOUTPUT ];then
    echo "ln -s /generator/output /generator/prod"
    ln -s /generator/output /generator/prod
else
    rm -rf /generator/prod
    rm -rf /generator/dev
    if [ $GIT_REPO ];then
        git clone -b $GIT_PROD_BRANCH $GIT_PROD_REPO prod
    else
        git clone -b $GIT_PROD_BRANCH --depth=1 $GIT_PROD_REPO prod
    fi
fi
sq3536's avatar
sq3536 committed
105 106 107 108 109 110 111 112 113 114 115 116

if [ ! $MODELFOLDER ];then
    if [ ! $CODEGEN_MODEL_PATH ];then
        if [ -f "prod/ibizmodel.yaml" ];then
            MODELFOLDER=`sed '/^modelfolder: /!d;s/.*: //' prod/ibizmodel.yaml`
        fi
    else
        MODELFOLDER=$CODEGEN_MODEL_PATH
    fi
fi

if [ ! $MODELFOLDER ];then  
117 118 119 120 121 122
    if [ -f "/model/PSSYSTEM.json" ];then
        MODELFOLDER=/model
    else
        echo "unknow model folder, env MODELFOLDER or CODEGEN_MODEL_PATH does not exist, ibizmodel.yaml not found."
        exit 1
    fi
sq3536's avatar
sq3536 committed
123 124 125
fi

echo spec dir: $MODELFOLDER
126 127 128 129 130 131 132 133 134 135 136
if [ $FASTOUTPUT ];then
    echo "ln -s /generator/output /generator/dev"
    ln -s /generator/output /generator/dev
else
    if [ $GIT_REPO ];then
        echo "ln -s /generator/prod /generator/dev"
        ln -s /generator/prod /generator/dev
    else
        git clone -b $GIT_DEV_BRANCH $GIT_DEV_REPO dev
    fi
fi
sq3536's avatar
sq3536 committed
137
cd prod
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
if [ -f "../dev/generator.yml" ];then
    java ${JAVA_OPTS} -Duser.timezone=$TZ -jar /root/.m2/repository/cn/ibizlab/ibizlab-generator-cli/1.0-SNAPSHOT/ibizlab-generator-cli-1.0-SNAPSHOT.jar generate -i "$MODELFOLDER" -c ../dev/generator.yml -o ../dev
else
    if [ ! $TEMPLATENAME ];then  
        if [ ! $TEMPLATEDIR ];then  
            echo "unknow template, env TEMPLATENAME or TEMPLATEDIR does not exist, generator.yaml not found."
            exit 1
        else
            java ${JAVA_OPTS} -Duser.timezone=$TZ -jar /root/.m2/repository/cn/ibizlab/ibizlab-generator-cli/1.0-SNAPSHOT/ibizlab-generator-cli-1.0-SNAPSHOT.jar generate -i "$MODELFOLDER" -t "$TEMPLATEDIR" -o ../dev
        fi
    else
        if [ ! $TEMPLATEDIR ];then  
            java ${JAVA_OPTS} -Duser.timezone=$TZ -jar /root/.m2/repository/cn/ibizlab/ibizlab-generator-cli/1.0-SNAPSHOT/ibizlab-generator-cli-1.0-SNAPSHOT.jar generate -i "$MODELFOLDER" --embed-template "$TEMPLATENAME:$TEMPLATEVERSION" --embed-template "$TEMPLATENAME2:$TEMPLATEVERSION2" --embed-template "$TEMPLATENAME3:$TEMPLATEVERSION3" --embed-template "$TEMPLATENAME4:$TEMPLATEVERSION4" -o ../dev 
        else
            java ${JAVA_OPTS} -Duser.timezone=$TZ -jar /root/.m2/repository/cn/ibizlab/ibizlab-generator-cli/1.0-SNAPSHOT/ibizlab-generator-cli-1.0-SNAPSHOT.jar generate -i "$MODELFOLDER" --embed-template "$TEMPLATENAME:$TEMPLATEVERSION" --embed-template "$TEMPLATENAME2:$TEMPLATEVERSION2" --embed-template "$TEMPLATENAME3:$TEMPLATEVERSION3" --embed-template "$TEMPLATENAME4:$TEMPLATEVERSION4" -t "$TEMPLATEDIR" -o ../dev 
        fi   
    fi
fi
rm -rf ../dev/generator.xml
sq3536's avatar
sq3536 committed
157 158 159
cd ../dev/


160 161 162 163
if [ ! $FASTOUTPUT ];then
    if [ ! $GIT_DEV_USER_NAME ];then
        if [ $CODEGEN_RO_USER ];then
            GIT_DEV_USER_NAME=$CODEGEN_RO_USER
sq3536's avatar
sq3536 committed
164
        else
165 166 167 168 169 170
            if [ $CODEGEN_CODE_USER ];then
                GIT_DEV_USER_NAME=$CODEGEN_CODE_USER
            else
                GIT_DEV_USER_NAME=ibizlabcli
                echo "env GIT_DEV_USER_NAME or CODEGEN_RO_USER or CODEGEN_CODE_USER does not exist,  using 'ibizlabcli'."
            fi
sq3536's avatar
sq3536 committed
171 172
        fi
    fi
173
    git config user.name "$GIT_DEV_USER_NAME"
sq3536's avatar
sq3536 committed
174

175 176 177 178
    if [ ! $GIT_DEV_USER_EMAIL ];then
        GIT_DEV_USER_EMAIL=$GIT_DEV_USER_NAME@ibizsys.net
    fi
    git config user.email "$GIT_DEV_USER_EMAIL"
sq3536's avatar
sq3536 committed
179

180 181 182 183 184 185
    set +e
    git add .
    git commit -m "generate by $GIT_DEV_USER_NAME. $GIT_PUSH_MESSAGE"
    git push origin $GIT_DEV_BRANCH
    set -e
fi
sq3536's avatar
sq3536 committed
186
exit 0