Skip to content

Instantly share code, notes, and snippets.

@vvsevolodovich
Created October 12, 2020 13:21
Show Gist options
  • Select an option

  • Save vvsevolodovich/6c22811c6a6cf1632f2101810d410f3f to your computer and use it in GitHub Desktop.

Select an option

Save vvsevolodovich/6c22811c6a6cf1632f2101810d410f3f to your computer and use it in GitHub Desktop.

Revisions

  1. vvsevolodovich created this gist Oct 12, 2020.
    52 changes: 52 additions & 0 deletions .sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,52 @@
    #!/bin/bash
    if [ $# -eq 0 ]
    then
    echo "usage: ./tools/openapi-generate <your_service> <project_id> <token>"
    exit
    fi

    BASE_PATH=`pwd`"/$1/lib"
    BASE_MODEL_PATH="$BASE_PATH/model"
    GENERATED_PATH="$BASE_PATH/newversion/lib"
    GENERATED_MODEL_PATH="$GENERATED_PATH/model"
    TMP=/tmp/genoutput.dart

    FILE="`pwd`/openapi-generator-cli-4.3.1.jar"
    if [ -f "$FILE" ]; then
    echo "$FILE exists."
    else
    echo "openapi-generator-cli-4.3.1.jar file not found, downloading..."
    curl "https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar" --output "$FILE"
    fi

    echo "Downloading new openapi.yaml"
    curl -XGET --header "PRIVATE-TOKEN: $3" "https://gitlab.com/api/v4/projects/$2/repository/files/api%2fopenapi.yaml/raw?ref=master" > "$BASE_PATH/openapi.yaml"

    echo "Generating client for $BASE_PATH/openapi.yaml"
    java -jar "`pwd`/openapi-generator-cli-4.3.1.jar" generate -i "$BASE_PATH/openapi.yaml" -g dart-dio -o "$BASE_PATH/newversion"
    echo "Generating done."

    #sed -e 's/package:openapi\/model\///g' "$INPUT" > $TMP && mv $TMP "$INPUT"
    cd "$GENERATED_MODEL_PATH";
    for i in $(ls);
    do
    #echo $i;
    sed -e 's/package:openapi\/model\///g' "$GENERATED_MODEL_PATH/$i" > $TMP && mv $TMP "$BASE_MODEL_PATH/$i"
    flutter format "$BASE_MODEL_PATH/$i"
    done

    sed -e 's/package:openapi\/model\//..\/model\//g' "$GENERATED_PATH/api/default_api.dart" > $TMP && mv $TMP "$BASE_PATH/api/default_api.dart"
    flutter format "$BASE_PATH/api/default_api.dart"
    sed -e 's/package:openapi\/model\//model\//g' "$GENERATED_PATH/serializers.dart" > $TMP && mv $TMP "$BASE_PATH/serializers.dart"
    flutter format "$BASE_PATH/serializers.dart"

    echo "Removing temporary files"
    cd "$BASE_PATH"
    rm -rf ./newversion

    cd ../
    echo "generating build_value..."
    flutter pub run build_runner build

    echo "Done"