@@ -5838,6 +5838,48 @@ list() {
58385838
58395839}
58405840
5841+ list_profiles () {
5842+ _initpath
5843+ _initAPI
5844+
5845+ _l_server_url=" $ACME_DIRECTORY "
5846+ _l_server_name=" $( _getCAShortName " $_l_server_url " ) "
5847+ _info " Fetching profiles from $_l_server_name ($_l_server_url )..."
5848+
5849+ response=$( _get " $_l_server_url " " " 10)
5850+ if [ " $? " != " 0" ]; then
5851+ _err " Failed to connect to CA directory: $_l_server_url "
5852+ return 1
5853+ fi
5854+
5855+ normalized_response=$( echo " $response " | _normalizeJson)
5856+ profiles_json=$( echo " $normalized_response " | _egrep_o ' "profiles" *: *\{[^\}]*\}' )
5857+
5858+ if [ -z " $profiles_json " ]; then
5859+ _info " The CA '$_l_server_name ' does not publish certificate profiles via its directory endpoint."
5860+ return 0
5861+ fi
5862+
5863+ # Strip the outer layer to get the key-value pairs
5864+ profiles_kv=$( echo " $profiles_json " | sed ' s/"profiles" *: *{//' | sed ' s/}$//' | tr ' ,' ' \n' )
5865+
5866+ printf " \n%-15s %s\n" " name" " info"
5867+ printf -- " --------------------------------------------------------------------\n"
5868+
5869+ _old_IFS=" $IFS "
5870+ IFS='
5871+ '
5872+ for pair in $profiles_kv ; do
5873+ # Trim quotes and whitespace
5874+ _name=$( echo " $pair " | cut -d: -f1 | tr -d ' " \t' )
5875+ _info_url=$( echo " $pair " | cut -d: -f2- | sed ' s/^ *//' | tr -d ' "' )
5876+ printf " %-15s %s\n" " $_name " " $_info_url "
5877+ done
5878+ IFS=" $_old_IFS "
5879+
5880+ return 0
5881+ }
5882+
58415883_deploy () {
58425884 _d=" $1 "
58435885 _hooks=" $2 "
@@ -7498,6 +7540,9 @@ _process() {
74987540 --set-default-chain)
74997541 _CMD=" setdefaultchain"
75007542 ;;
7543+ --list-profiles)
7544+ _CMD=" list_profiles"
7545+ ;;
75017546 -d | --domain)
75027547 _dvalue=" $2 "
75037548
@@ -8063,6 +8108,9 @@ _process() {
80638108 setdefaultchain)
80648109 setdefaultchain " $_preferred_chain "
80658110 ;;
8111+ list_profiles)
8112+ list_profiles
8113+ ;;
80668114 * )
80678115 if [ " $_CMD " ]; then
80688116 _err " Invalid command: $_CMD "
0 commit comments