caprover / caprover-cli

Command Line Interface for https://github.com/caprover/caprover
72 stars 39 forks source link

[Improvement] Silent flag for API calls #109

Open darkspirit510 opened 2 years ago

darkspirit510 commented 2 years ago

Hi all, i'm passing CLI JSON results to jq. A few months ago I created some scripts that were able to trim the header (something like CLI has been refactored...). Now my scripts don't work anymore because the header changed:

Calling: caprover api -t "/user/apps/appDefinitions/" -m GET -d "{}" results in

Call generic CapRover API [Experimental Feature]...

Ensuring authentication...
API call completed successfully!

{
  "appDefinitions": [
    {
[...]

Which (without trimming) of course make jq complain since this is no JSON. Can you please add a silent flag (something like -s) to get rid of everything except JSON? Thank you :-)

githubsaturn commented 2 years ago

If you need the output, why aren't you making use of -o output.json flag?

darkspirit510 commented 2 years ago

I like to chain things without writing and catting files. From my setup script:

APP_EXISTS=$(caprover api -t "/user/apps/appDefinitions/" -m GET -d "{}" | tail -n+8 | jq ".appDefinitions[] | select(.appName == \"$CAPROVER_APP\")")
if [ -z "$APP_EXISTS" ]; then
  echo "Creating new dummy app '$CAPROVER_APP' 🐣"
  caprover api -t "/user/apps/appDefinitions/register" -m POST -d "{\"appName\":\"$CAPROVER_APP\", \"hasPersistentData\": false}"
else
  echo "App '$CAPROVER_APP' already exists 🥱"
fi

I know and use the same approach for things like CloudFoundry or any web api.