2020-04-17 22:12:42 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
|
|
|
# Usage example
|
|
|
|
# URL=http://localhost:3000 ./create-declarative-project.sh
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
HYDRA_ADMIN_USERNAME=${HYDRA_ADMIN_USERNAME:-admin}
|
|
|
|
HYDRA_ADMIN_PASSWORD=${HYDRA_ADMIN_PASSWORD:-admin}
|
|
|
|
URL=${URL:-http://localhost:3000}
|
|
|
|
DECL_FILE=${DECL_FILE:-"spec.json"}
|
|
|
|
DECL_TYPE=${DECL_TYPE:-"git"}
|
|
|
|
DECL_VALUE=${DECL_VALUE:-"https://github.com/shlevy/declarative-hydra-example"}
|
|
|
|
DECL_PROJECT_NAME=${DECL_PROJECT_NAME:-"example"}
|
|
|
|
DECL_DISPLAY_NAME=${DECL_DISPLAY_NAME:-"An example project"}
|
|
|
|
DECL_DESCRIPTION=${DECL_DESCRIPTION:-""}
|
|
|
|
DECL_HOMEPAGE=${DECL_HOMEPAGE:-""}
|
|
|
|
|
|
|
|
mycurl() {
|
|
|
|
curl --fail --referer "${URL}" -H "Accept: application/json" -H "Content-Type: application/json" "$@"
|
|
|
|
}
|
|
|
|
|
|
|
|
echo "Logging to $URL with user $HYDRA_ADMIN_USERNAME"
|
|
|
|
cat >data.json <<EOF
|
|
|
|
{ "username": "$HYDRA_ADMIN_USERNAME", "password": "$HYDRA_ADMIN_PASSWORD" }
|
|
|
|
EOF
|
|
|
|
mycurl -X POST -d '@data.json' "$URL/login" -c hydra-cookie.txt
|
|
|
|
|
|
|
|
echo -e "\nCreating project:"
|
|
|
|
cat >data.json <<EOF
|
|
|
|
{
|
|
|
|
"displayname":"$DECL_DISPLAY_NAME",
|
|
|
|
"description":"$DECL_DESCRIPTION",
|
|
|
|
"homepage":"$DECL_HOMEPAGE",
|
|
|
|
"enabled":"1",
|
|
|
|
"visible":"1",
|
2021-07-12 23:15:08 +02:00
|
|
|
"declarative": {
|
|
|
|
"file": "$DECL_FILE",
|
|
|
|
"type":"$DECL_TYPE",
|
|
|
|
"value":"$DECL_VALUE"
|
|
|
|
}
|
2020-04-17 22:12:42 +02:00
|
|
|
}
|
|
|
|
EOF
|
|
|
|
cat data.json
|
|
|
|
mycurl --silent -X PUT "$URL/project/$DECL_PROJECT_NAME" -d @data.json -b hydra-cookie.txt
|
|
|
|
|
|
|
|
rm -f data.json hydra-cookie.txt
|