2023-11-22 23:37:09 +00:00
#!/bin/bash
set -e
RECORD_FILE = tmp.rf.$$
CONFIG_FILE = ` mktemp`
CERC_APP_TYPE = ${ CERC_APP_TYPE :- "webapp" }
2023-12-07 23:01:30 +00:00
CERC_REPO_REF = ${ CERC_REPO_REF :- ${ GITHUB_SHA :- ` git log -1 --format= "%H" ` } }
CERC_IS_LATEST_RELEASE = ${ CERC_IS_LATEST_RELEASE :- "true" }
2023-11-22 23:37:09 +00:00
rcd_name = $( jq -r '.name' package.json | sed 's/null//' )
rcd_desc = $( jq -r '.description' package.json | sed 's/null//' )
rcd_repository = $( jq -r '.repository' package.json | sed 's/null//' )
rcd_homepage = $( jq -r '.homepage' package.json | sed 's/null//' )
rcd_license = $( jq -r '.license' package.json | sed 's/null//' )
2023-12-12 14:54:19 +00:00
rcd_author = $( jq -r '.author' package.json | sed 's/null//' )
2023-11-22 23:37:09 +00:00
rcd_app_version = $( jq -r '.version' package.json | sed 's/null//' )
cat <<EOF > "$CONFIG_FILE "
services:
cns:
2023-12-07 23:01:30 +00:00
restEndpoint: '${CERC_REGISTRY_REST_ENDPOINT:-http://console.laconic.com:1317}'
gqlEndpoint: '${CERC_REGISTRY_GQL_ENDPOINT:-http://console.laconic.com:9473/api}'
chainId: ${ CERC_REGISTRY_CHAIN_ID :- laconic_9000 -1 }
gas: 550000
2023-11-22 23:37:09 +00:00
fees: 200000aphoton
EOF
2023-12-07 23:01:30 +00:00
next_ver = $( laconic -c $CONFIG_FILE cns record list --type ApplicationRecord --all --name " $rcd_name " 2>/dev/null | jq -r -s " .[] | sort_by(.createTime) | reverse | [ .[] | select(.bondId == \" $CERC_REGISTRY_BOND_ID \") ] | .[0].attributes.version " | awk -F. -v OFS = . '{$NF += 1 ; print}' )
2023-11-22 23:37:09 +00:00
2023-12-06 22:44:29 +00:00
if [ -z " $next_ver " ] || [ "1" = = " $next_ver " ] ; then
next_ver = 0.0.1
fi
2023-11-22 23:37:09 +00:00
cat <<EOF | sed '/.*: ""$/d' > "$RE CORD_FILE"
record:
type: ApplicationRecord
2023-12-06 22:44:29 +00:00
version: ${ next_ver }
2023-11-22 23:37:09 +00:00
name: " $rcd_name "
description: " $rcd_desc "
homepage: " $rcd_homepage "
license: " $rcd_license "
author: " $rcd_author "
2023-12-14 03:52:24 +00:00
repository:
- " $rcd_repository "
2023-12-07 23:01:30 +00:00
repository_ref: " $CERC_REPO_REF "
2023-11-22 23:37:09 +00:00
app_version: " $rcd_app_version "
app_type: " $CERC_APP_TYPE "
EOF
cat $RECORD_FILE
2023-12-07 23:01:30 +00:00
RECORD_ID = $( laconic -c $CONFIG_FILE cns record publish --filename $RECORD_FILE --user-key " ${ CERC_REGISTRY_USER_KEY } " --bond-id ${ CERC_REGISTRY_BOND_ID } | jq -r '.id' )
echo $RECORD_ID
2023-12-14 17:01:15 +00:00
if [ -z " $CERC_REGISTRY_APP_CRN " ] ; then
authority = $( echo " $rcd_name " | cut -d'/' -f1 | sed 's/@//' )
app = $( echo " $rcd_name " | cut -d'/' -f2-)
CERC_REGISTRY_APP_CRN = " crn:// $authority /applications/ $app "
fi
laconic -c $CONFIG_FILE cns name set --user-key " ${ CERC_REGISTRY_USER_KEY } " --bond-id ${ CERC_REGISTRY_BOND_ID } " $CERC_REGISTRY_APP_CRN @ ${ rcd_app_version } " " $RECORD_ID "
laconic -c $CONFIG_FILE cns name set --user-key " ${ CERC_REGISTRY_USER_KEY } " --bond-id ${ CERC_REGISTRY_BOND_ID } " $CERC_REGISTRY_APP_CRN @ ${ CERC_REPO_REF } " " $RECORD_ID "
if [ "true" = = " $CERC_IS_LATEST_RELEASE " ] ; then
laconic -c $CONFIG_FILE cns name set --user-key " ${ CERC_REGISTRY_USER_KEY } " --bond-id ${ CERC_REGISTRY_BOND_ID } " $CERC_REGISTRY_APP_CRN " " $RECORD_ID "
laconic -c $CONFIG_FILE cns name set --user-key " ${ CERC_REGISTRY_USER_KEY } " --bond-id ${ CERC_REGISTRY_BOND_ID } " $CERC_REGISTRY_APP_CRN @latest " " $RECORD_ID "
2023-12-07 23:01:30 +00:00
fi
2023-11-22 23:37:09 +00:00
rm -f $RECORD_FILE $CONFIG_FILE