A framework for building convergent cross-platform Nextcloud clients using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.2 KiB

#!/bin/bash
set -euxo pipefail
cd "$(dirname "$0")/.."
rm -rf /tmp/nextcloud-neon
mkdir -p /tmp/nextcloud-neon
(
cd external/nextcloud-openapi-extractor
composer update && composer install
)
for path in core apps/files_sharing apps/provisioning_api apps/settings apps/theming apps/user_status; do
codename="$(echo $path | sed "s/^apps\///")"
./external/nextcloud-openapi-extractor/generate-spec "external/nextcloud-server/$path" "packages/nextcloud/lib/src/api/$codename.openapi.json" --first-status-code --first-content-type --openapi-version 3.1.0
done
./external/nextcloud-openapi-extractor/merge-specs \
--openapi-version 3.1.0 \
--core packages/nextcloud/lib/src/api/core.openapi.json \
--merged /tmp/nextcloud-neon/merged.json \
packages/nextcloud/lib/src/api/*.openapi.json
jq \
-s \
'.[0] * {components: {schemas: .[1].components.schemas | with_entries(select(.key | endswith("Capabilities")))}, paths: {"/ocs/v2.php/cloud/capabilities": {get: {responses: .[1].paths."/ocs/v2.php/cloud/capabilities".get.responses}}}}' \
packages/nextcloud/lib/src/api/core.openapi.json \
/tmp/nextcloud-neon/merged.json \
> /tmp/nextcloud-neon/core.json
cp /tmp/nextcloud-neon/core.json packages/nextcloud/lib/src/api/core.openapi.json