#!/bin/bash # This script re-generates the fatcat API client (fatcat-openapi-client) from the # swagger/openapi2 spec file, using automated tools ("codegen") set -exu set -o pipefail OUTPUT=`pwd`/codegen-out mkdir -p $OUTPUT # Strip tags, so entire API is under a single class # Also strip long part of description so it doesn't clutter source headers cat ../fatcat-openapi2.yml | grep -v "TAGLINE$" | perl -0777 -pe "s/<\!-- STARTLONGDESCRIPTION -->.*<\!-- ENDLONGDESCRIPTION -->//s" > $OUTPUT/api.yml docker run \ -v $OUTPUT:/tmp/swagger/ \ openapitools/openapi-generator-cli:v4.1.2 \ generate \ --generator-name python \ --input-spec /tmp/swagger/api.yml \ --output /tmp/swagger/ \ --package-name=fatcat_openapi_client \ -p packageVersion="0.3.1" sudo chown -R `whoami`:`whoami` $OUTPUT mkdir -p fatcat_openapi_client cp -r $OUTPUT/fatcat_openapi_client/* fatcat_openapi_client cp $OUTPUT/README.md README.md.new # I don't know what they were thinking with this TypeWithDefault stuff, but it # caused really gnarly config cross-contamination issues when running mulitple # clients in parallel. # See also: https://github.com/swagger-api/swagger-codegen/issues/9117 patch -p0 << END_PATCH --- fatcat_openapi_client/configuration.py +++ fatcat_openapi_client/configuration.py @@ -37,7 +37,7 @@ class TypeWithDefault(type): cls._default = copy.copy(default) -class Configuration(six.with_metaclass(TypeWithDefault, object)): +class Configuration(object): """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech END_PATCH # these tests are basically no-ops mkdir -p tests/codegen cp -r $OUTPUT/test/* tests/codegen # ooo, this makes me nervous rm -rf $OUTPUT