github.com/tada-team/tdproto@v1.51.57/codegen/make-dart.sh (about) 1 #!/bin/bash 2 set -euo pipefail 3 shopt -s extdebug dotglob 4 IFS=$'\n\t' 5 6 # Setup command line arguments 7 TEMP=$(getopt --options 'bf' --long 'no-build,no-format' --name "make-dart.bash" -- "$@") 8 9 eval set -- "$TEMP" 10 unset TEMP 11 12 RUN_BUILD=true 13 RUN_FORMAT=true 14 15 while true; do 16 case "$1" in 17 '-b'|'--no-build') 18 RUN_BUILD=false 19 shift 20 continue 21 ;; 22 '-f'|'--no-format') 23 RUN_FORMAT=false 24 shift 25 continue 26 ;; 27 '--') 28 shift 29 break 30 ;; 31 *) 32 echo 'Internal error!' >&2 33 exit 1 34 ;; 35 esac 36 done 37 38 if [ 1 -ne "${#}" ]; then 39 echo "Wrong number of arguments. Should pass only 1 which is the dart library folder." >&2 40 exit 1 41 fi 42 43 DART_LIB_FOLDER="$1" 44 45 if [ ! -d $DART_LIB_FOLDER ]; then 46 echo "$DART_LIB_FOLDER is not a folder" >&2 47 exit 1 48 fi 49 50 DART_LIB_FOLDER="$(readlink --canonicalize $DART_LIB_FOLDER)" 51 52 LIB_ENUMS_PATH="${DART_LIB_FOLDER}/lib/src/enums" 53 LIB_MODELS_PATH="${DART_LIB_FOLDER}/lib/src/models" 54 LIB_FILE_PATH="${DART_LIB_FOLDER}/lib/tdproto_dart.dart" 55 56 LIB_TEMPLATE_DIR="./dart/lib_template" 57 58 cp -r "$LIB_TEMPLATE_DIR"/* "$DART_LIB_FOLDER" 59 60 if [ -d "$LIB_ENUMS_PATH" ]; then rm -r "$LIB_ENUMS_PATH"; fi 61 if [ -d "$LIB_MODELS_PATH" ]; then rm -r "$LIB_MODELS_PATH"; fi 62 if [ -f "$LIB_FILE_PATH" ]; then rm "$LIB_FILE_PATH"; fi 63 64 if [ -d "${DART_LIB_FOLDER}/.git" ]; then git -C "${DART_LIB_FOLDER}" rm --cached -r . ; fi 65 66 go run "./dart" "$DART_LIB_FOLDER" 67 68 cd "$DART_LIB_FOLDER" 69 70 if [ "$RUN_BUILD" = true ]; then 71 flutter pub get 72 flutter packages pub run build_runner build --delete-conflicting-outputs 73 fi 74 #if [ "$RUN_FORMAT" = true ]; then 75 # dartfmt -l 120 -w . 76 #fi