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.
125 lines
3.0 KiB
125 lines
3.0 KiB
#!/bin/bash |
|
set -euxo pipefail |
|
cd "$(dirname "$0")/.." |
|
|
|
rm -rf /tmp/nextcloud-neon |
|
mkdir -p /tmp/nextcloud-neon |
|
|
|
xmlstarlet \ |
|
edit \ |
|
--update "/info/version" \ |
|
--value "$(cd external/nextcloud-server && git describe --tags | sed "s/^v//")" \ |
|
specs/templates/appinfo_core.xml \ |
|
> /tmp/nextcloud-neon/appinfo_core1.xml |
|
xmlstarlet \ |
|
format \ |
|
--indent-spaces 4 \ |
|
/tmp/nextcloud-neon/appinfo_core1.xml \ |
|
> /tmp/nextcloud-neon/appinfo_core2.xml |
|
cp /tmp/nextcloud-neon/appinfo_core2.xml specs/templates/appinfo_core.xml |
|
|
|
function generate_spec_templates() { |
|
fvm dart packages/spec_templates/bin/generate.dart "$1" "$2" |
|
} |
|
|
|
generate_spec_templates external/nextcloud-news false |
|
generate_spec_templates external/nextcloud-notes false |
|
generate_spec_templates external/nextcloud-notifications false |
|
generate_spec_templates external/nextcloud-server/apps/provisioning_api false |
|
generate_spec_templates external/nextcloud-server/apps/user_status false |
|
generate_spec_templates external/nextcloud-server/core true |
|
|
|
codenames=(core news notes notifications provisioning_api user_status) |
|
|
|
for codename in ${codenames[*]}; do |
|
jq \ |
|
--arg codename "$codename" \ |
|
-s \ |
|
'{ |
|
openapi: .[0].openapi, |
|
info: .[0].info, |
|
servers: [ |
|
{ |
|
url: "https://{hostname}:{port}", |
|
variables: { |
|
hostname: { |
|
default: "localhost" |
|
}, |
|
port: { |
|
default: "8080" |
|
} |
|
} |
|
} |
|
], |
|
security: [ |
|
{ |
|
basic_auth: [] |
|
} |
|
], |
|
tags: .[1].tags, |
|
components: { |
|
schemas: .[1].components.schemas |
|
}, |
|
paths: .[1].paths |
|
} | |
|
.components.securitySchemes = { |
|
basic_auth: { |
|
type: "http", |
|
scheme: "basic", |
|
}, |
|
} | |
|
.components.schemas.OCSMeta = |
|
{ |
|
type: "object", |
|
required: [ |
|
"status", |
|
"statuscode" |
|
], |
|
properties: { |
|
status: { |
|
type: "string" |
|
}, |
|
statuscode: { |
|
type: "integer" |
|
}, |
|
message: { |
|
type: "string" |
|
}, |
|
totalitems: { |
|
type: "string" |
|
}, |
|
itemsperpage: { |
|
type: "string" |
|
} |
|
} |
|
} | |
|
.components.schemas.EmptyOCS = |
|
{ |
|
type: "object", |
|
required: [ |
|
"ocs" |
|
], |
|
properties: { |
|
ocs: { |
|
type: "object", |
|
required: [ |
|
"meta", |
|
"data" |
|
], |
|
properties: { |
|
meta: { |
|
"$ref": "#/components/schemas/OCSMeta" |
|
}, |
|
data: { |
|
type: "array" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
' \ |
|
specs/templates/"$codename".json \ |
|
specs/"$codename".json \ |
|
> /tmp/nextcloud-neon/"$codename".json |
|
cp /tmp/nextcloud-neon/"$codename".json specs/"$codename".json |
|
done
|
|
|