mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-10-31 02:17:18 +00:00 
			
		
		
		
	Support SunOS/Solaris (#260)
Support SunOS/Solaris * Support Solaris * Support SunOS/Open Solaris
This commit is contained in:
		
							parent
							
								
									d190a43e0a
								
							
						
					
					
						commit
						22ea4004e1
					
				
							
								
								
									
										136
									
								
								acme.sh
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								acme.sh
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| #!/usr/bin/env sh | #!/usr/bin/env sh | ||||||
| 
 | 
 | ||||||
| VER=2.3.5 | VER=2.3.6 | ||||||
| 
 | 
 | ||||||
| PROJECT_NAME="acme.sh" | PROJECT_NAME="acme.sh" | ||||||
| 
 | 
 | ||||||
| @ -76,6 +76,13 @@ _debug2() { | |||||||
|   return |   return | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | _debug3() { | ||||||
|  |   if [ "$DEBUG" ] && [ "$DEBUG" -ge "3" ] ; then | ||||||
|  |     _debug "$@" | ||||||
|  |   fi | ||||||
|  |   return | ||||||
|  | } | ||||||
|  | 
 | ||||||
| _startswith(){ | _startswith(){ | ||||||
|   _str="$1" |   _str="$1" | ||||||
|   _sub="$2" |   _sub="$2" | ||||||
| @ -215,6 +222,14 @@ _sed_i() { | |||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | _egrep_o() { | ||||||
|  |   if _contains "$(egrep -o 2>&1)" "egrep: illegal option -- o" ; then | ||||||
|  |     sed -n 's/.*\('"$1"'\).*/\1/p' | ||||||
|  |   else | ||||||
|  |     egrep -o "$1" | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #Usage: file startline endline | #Usage: file startline endline | ||||||
| _getfile() { | _getfile() { | ||||||
|   filename="$1" |   filename="$1" | ||||||
| @ -406,6 +421,9 @@ _ss() { | |||||||
|     else |     else | ||||||
|       if netstat -help 2>&1 | grep "\-p protocol" >/dev/null ; then |       if netstat -help 2>&1 | grep "\-p protocol" >/dev/null ; then | ||||||
|         netstat -an -p tcp | grep LISTEN | grep ":$_port " |         netstat -an -p tcp | grep LISTEN | grep ":$_port " | ||||||
|  |       elif netstat -help 2>&1 | grep -- '-P protocol' >/dev/null ; then | ||||||
|  |         #for solaris | ||||||
|  |         netstat -an -P tcp | grep "\.$_port " | ||||||
|       else |       else | ||||||
|         netstat -ntpl | grep ":$_port " |         netstat -ntpl | grep ":$_port " | ||||||
|       fi |       fi | ||||||
| @ -535,6 +553,11 @@ _time2str() { | |||||||
|     return |     return | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|  |   #Soaris | ||||||
|  |   if _exists adb ; then | ||||||
|  |     echo $(echo "0t${1}=Y" | adb) | ||||||
|  |   fi | ||||||
|  |    | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| _normalizeJson() { | _normalizeJson() { | ||||||
| @ -569,66 +592,67 @@ _calcjwk() { | |||||||
|     if [ "${#pub_exp}" = "5" ] ; then |     if [ "${#pub_exp}" = "5" ] ; then | ||||||
|       pub_exp=0$pub_exp |       pub_exp=0$pub_exp | ||||||
|     fi |     fi | ||||||
|     _debug2 pub_exp "$pub_exp" |     _debug3 pub_exp "$pub_exp" | ||||||
|      |      | ||||||
|     e=$(echo $pub_exp | _h2b | _base64) |     e=$(echo $pub_exp | _h2b | _base64) | ||||||
|     _debug2 e "$e" |     _debug3 e "$e" | ||||||
|      |      | ||||||
|     modulus=$(openssl rsa -in $keyfile -modulus -noout | cut -d '=' -f 2 ) |     modulus=$(openssl rsa -in $keyfile -modulus -noout | cut -d '=' -f 2 ) | ||||||
|     _debug2 modulus "$modulus" |     _debug3 modulus "$modulus" | ||||||
|     n="$(printf "%s" "$modulus"| _h2b | _base64 | _urlencode )" |     n="$(printf "%s" "$modulus"| _h2b | _base64 | _urlencode )" | ||||||
|     jwk='{"e": "'$e'", "kty": "RSA", "n": "'$n'"}' |     jwk='{"e": "'$e'", "kty": "RSA", "n": "'$n'"}' | ||||||
|     _debug2 jwk "$jwk" |     _debug3 jwk "$jwk" | ||||||
|      |      | ||||||
|     HEADER='{"alg": "RS256", "jwk": '$jwk'}' |     HEADER='{"alg": "RS256", "jwk": '$jwk'}' | ||||||
|     HEADERPLACE='{"nonce": "NONCE", "alg": "RS256", "jwk": '$jwk'}' |     HEADERPLACE_PART1='{"nonce": "' | ||||||
|  |     HEADERPLACE_PART2='", "alg": "RS256", "jwk": '$jwk'}' | ||||||
|   elif grep "BEGIN EC PRIVATE KEY" "$keyfile" > /dev/null 2>&1 ; then |   elif grep "BEGIN EC PRIVATE KEY" "$keyfile" > /dev/null 2>&1 ; then | ||||||
|     _debug "EC key" |     _debug "EC key" | ||||||
|     EC_SIGN="1" |     EC_SIGN="1" | ||||||
|     crv="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | grep "^NIST CURVE:" | cut -d ":" -f 2 | tr -d " \r\n")" |     crv="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | grep "^NIST CURVE:" | cut -d ":" -f 2 | tr -d " \r\n")" | ||||||
|     _debug2 crv "$crv" |     _debug3 crv "$crv" | ||||||
|      |      | ||||||
|     pubi="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | grep -n pub: | cut -d : -f 1)" |     pubi="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | grep -n pub: | cut -d : -f 1)" | ||||||
|     pubi=$(_math $pubi + 1) |     pubi=$(_math $pubi + 1) | ||||||
|     _debug2 pubi "$pubi" |     _debug3 pubi "$pubi" | ||||||
|      |      | ||||||
|     pubj="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | grep -n "ASN1 OID:"  | cut -d : -f 1)" |     pubj="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | grep -n "ASN1 OID:"  | cut -d : -f 1)" | ||||||
|     pubj=$(_math $pubj + 1) |     pubj=$(_math $pubj + 1) | ||||||
|     _debug2 pubj "$pubj" |     _debug3 pubj "$pubj" | ||||||
|      |      | ||||||
|     pubtext="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | sed  -n "$pubi,${pubj}p" | tr -d " \n\r")" |     pubtext="$(openssl ec  -in $keyfile  -noout -text 2>/dev/null | sed  -n "$pubi,${pubj}p" | tr -d " \n\r")" | ||||||
|     _debug2 pubtext "$pubtext" |     _debug3 pubtext "$pubtext" | ||||||
|      |      | ||||||
|     xlen="$(printf "$pubtext" | tr -d ':' | wc -c)" |     xlen="$(printf "$pubtext" | tr -d ':' | wc -c)" | ||||||
|     xlen=$(_math $xlen / 4) |     xlen=$(_math $xlen / 4) | ||||||
|     _debug2 xlen "$xlen" |     _debug3 xlen "$xlen" | ||||||
| 
 | 
 | ||||||
|     xend=$(_math "$xend" + 1) |     xend=$(_math "$xend" + 1) | ||||||
|     x="$(printf $pubtext | cut -d : -f 2-$xend)" |     x="$(printf $pubtext | cut -d : -f 2-$xend)" | ||||||
|     _debug2 x "$x" |     _debug3 x "$x" | ||||||
|      |      | ||||||
|     x64="$(printf $x | tr -d : | _h2b | _base64 | _urlencode)" |     x64="$(printf $x | tr -d : | _h2b | _base64 | _urlencode)" | ||||||
|     _debug2 x64 "$x64" |     _debug3 x64 "$x64" | ||||||
| 
 | 
 | ||||||
|     xend=$(_math "$xend" + 1) |     xend=$(_math "$xend" + 1) | ||||||
|     y="$(printf $pubtext | cut -d : -f $xend-10000)" |     y="$(printf $pubtext | cut -d : -f $xend-10000)" | ||||||
|     _debug2 y "$y" |     _debug3 y "$y" | ||||||
|      |      | ||||||
|     y64="$(printf $y | tr -d : | _h2b | _base64 | _urlencode)" |     y64="$(printf $y | tr -d : | _h2b | _base64 | _urlencode)" | ||||||
|     _debug2 y64 "$y64" |     _debug3 y64 "$y64" | ||||||
|     |     | ||||||
|     jwk='{"kty": "EC", "crv": "'$crv'", "x": "'$x64'", "y": "'$y64'"}' |     jwk='{"kty": "EC", "crv": "'$crv'", "x": "'$x64'", "y": "'$y64'"}' | ||||||
|     _debug2 jwk "$jwk" |     _debug3 jwk "$jwk" | ||||||
|      |      | ||||||
|     HEADER='{"alg": "ES256", "jwk": '$jwk'}' |     HEADER='{"alg": "ES256", "jwk": '$jwk'}' | ||||||
|     HEADERPLACE='{"nonce": "NONCE", "alg": "ES256", "jwk": '$jwk'}' |     HEADERPLACE_PART1='{"nonce": "' | ||||||
| 
 |     HEADERPLACE_PART2='", "alg": "ES256", "jwk": '$jwk'}' | ||||||
|   else |   else | ||||||
|     _err "Only RSA or EC key is supported." |     _err "Only RSA or EC key is supported." | ||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   _debug2 HEADER "$HEADER" |   _debug3 HEADER "$HEADER" | ||||||
| } | } | ||||||
| # body  url [needbase64] [POST|PUT] | # body  url [needbase64] [POST|PUT] | ||||||
| _post() { | _post() { | ||||||
| @ -744,8 +768,8 @@ _send_signed_request() { | |||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   payload64=$(echo -n $payload | _base64 | _urlencode) |   payload64=$(printf "%s" "$payload" | _base64 | _urlencode) | ||||||
|   _debug2 payload64 $payload64 |   _debug3 payload64 $payload64 | ||||||
|    |    | ||||||
|   nonceurl="$API/directory" |   nonceurl="$API/directory" | ||||||
|   _headers="$(_get $nonceurl "onlyheader")" |   _headers="$(_get $nonceurl "onlyheader")" | ||||||
| @ -755,23 +779,23 @@ _send_signed_request() { | |||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   _debug2 _headers "$_headers" |   _debug3 _headers "$_headers" | ||||||
|    |    | ||||||
|   nonce="$( echo "$_headers" | grep "Replay-Nonce:" | head -1 | tr -d "\r\n " | cut -d ':' -f 2)" |   nonce="$( echo "$_headers" | grep "Replay-Nonce:" | head -1 | tr -d "\r\n " | cut -d ':' -f 2)" | ||||||
| 
 | 
 | ||||||
|   _debug nonce "$nonce" |   _debug3 nonce "$nonce" | ||||||
|    |    | ||||||
|   protected="$(printf "$HEADERPLACE" | sed "s/NONCE/$nonce/" )" |   protected="$HEADERPLACE_PART1$nonce$HEADERPLACE_PART2" | ||||||
|   _debug2 protected "$protected" |   _debug3 protected "$protected" | ||||||
|    |    | ||||||
|   protected64="$(printf "$protected" | _base64 | _urlencode)" |   protected64="$(printf "$protected" | _base64 | _urlencode)" | ||||||
|   _debug2 protected64 "$protected64" |   _debug3 protected64 "$protected64" | ||||||
| 
 | 
 | ||||||
|   sig=$(echo -n "$protected64.$payload64" |  _sign  "$keyfile" "sha256" | _urlencode) |   sig=$(printf "%s" "$protected64.$payload64" |  _sign  "$keyfile" "sha256" | _urlencode) | ||||||
|   _debug2 sig "$sig" |   _debug3 sig "$sig" | ||||||
|    |    | ||||||
|   body="{\"header\": $HEADER, \"protected\": \"$protected64\", \"payload\": \"$payload64\", \"signature\": \"$sig\"}" |   body="{\"header\": $HEADER, \"protected\": \"$protected64\", \"payload\": \"$payload64\", \"signature\": \"$sig\"}" | ||||||
|   _debug2 body "$body" |   _debug3 body "$body" | ||||||
|    |    | ||||||
| 
 | 
 | ||||||
|   response="$(_post "$body" $url "$needbase64")" |   response="$(_post "$body" $url "$needbase64")" | ||||||
| @ -808,15 +832,15 @@ _setopt() { | |||||||
|     touch "$__conf" |     touch "$__conf" | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   if grep -H -n "^$__opt$__sep" "$__conf" > /dev/null ; then |   if grep -n "^$__opt$__sep" "$__conf" > /dev/null ; then | ||||||
|     _debug2 OK |     _debug3 OK | ||||||
|     if _contains "$__val" "&" ; then |     if _contains "$__val" "&" ; then | ||||||
|       __val="$(echo $__val | sed 's/&/\\&/g')" |       __val="$(echo $__val | sed 's/&/\\&/g')" | ||||||
|     fi |     fi | ||||||
|     text="$(cat $__conf)" |     text="$(cat $__conf)" | ||||||
|     echo "$text" | sed "s|^$__opt$__sep.*$|$__opt$__sep$__val$__end|" > "$__conf" |     echo "$text" | sed "s|^$__opt$__sep.*$|$__opt$__sep$__val$__end|" > "$__conf" | ||||||
| 
 | 
 | ||||||
|   elif grep -H -n "^#$__opt$__sep" "$__conf" > /dev/null ; then |   elif grep -n "^#$__opt$__sep" "$__conf" > /dev/null ; then | ||||||
|     if _contains "$__val" "&" ; then |     if _contains "$__val" "&" ; then | ||||||
|       __val="$(echo $__val | sed 's/&/\\&/g')" |       __val="$(echo $__val | sed 's/&/\\&/g')" | ||||||
|     fi |     fi | ||||||
| @ -824,10 +848,10 @@ _setopt() { | |||||||
|     echo "$text" | sed "s|^#$__opt$__sep.*$|$__opt$__sep$__val$__end|" > "$__conf" |     echo "$text" | sed "s|^#$__opt$__sep.*$|$__opt$__sep$__val$__end|" > "$__conf" | ||||||
| 
 | 
 | ||||||
|   else |   else | ||||||
|     _debug2 APP |     _debug3 APP | ||||||
|     echo "$__opt$__sep$__val$__end" >> "$__conf" |     echo "$__opt$__sep$__val$__end" >> "$__conf" | ||||||
|   fi |   fi | ||||||
|   _debug "$(grep -H -n "^$__opt$__sep" $__conf)" |   _debug2 "$(grep -n "^$__opt$__sep" $__conf)" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_savedomainconf   key  value | #_savedomainconf   key  value | ||||||
| @ -922,9 +946,9 @@ _stopserver(){ | |||||||
|   _debug2 "Le_HTTPPort" "$Le_HTTPPort" |   _debug2 "Le_HTTPPort" "$Le_HTTPPort" | ||||||
|   if [ "$Le_HTTPPort" ] ; then |   if [ "$Le_HTTPPort" ] ; then | ||||||
|     if [ "$DEBUG" ] ; then |     if [ "$DEBUG" ] ; then | ||||||
|       _get "http://localhost:$Le_HTTPPort" |       _get "http://localhost:$Le_HTTPPort" "" 1 | ||||||
|     else |     else | ||||||
|       _get "http://localhost:$Le_HTTPPort" >/dev/null 2>&1 |       _get "http://localhost:$Le_HTTPPort" "" 1 >/dev/null 2>&1 | ||||||
|     fi |     fi | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
| @ -1412,8 +1436,8 @@ issue() { | |||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   accountkey_json=$(echo -n "$jwk" |  tr -d ' ' ) |   accountkey_json=$(printf "%s" "$jwk" |  tr -d ' ' ) | ||||||
|   thumbprint=$(echo -n "$accountkey_json" | _digest "sha256" | _urlencode) |   thumbprint=$(printf "%s" "$accountkey_json" | _digest "sha256" | _urlencode) | ||||||
|    |    | ||||||
|   regjson='{"resource": "new-reg", "agreement": "'$AGREEMENT'"}' |   regjson='{"resource": "new-reg", "agreement": "'$AGREEMENT'"}' | ||||||
|   if [ "$ACCOUNT_EMAIL" ] ; then |   if [ "$ACCOUNT_EMAIL" ] ; then | ||||||
| @ -1506,17 +1530,17 @@ issue() { | |||||||
|         return 1 |         return 1 | ||||||
|       fi |       fi | ||||||
| 
 | 
 | ||||||
|       entry="$(printf "$response" | egrep -o  '\{[^{]*"type":"'$vtype'"[^}]*')" |       entry="$(printf "%s\n" "$response" | _egrep_o  '[^{]*"type":"'$vtype'"[^}]*')" | ||||||
|       _debug entry "$entry" |       _debug entry "$entry" | ||||||
|       if [ -z "$entry" ] ; then |       if [ -z "$entry" ] ; then | ||||||
|         _err "Error, can not get domain token $d" |         _err "Error, can not get domain token $d" | ||||||
|         _clearup |         _clearup | ||||||
|         return 1 |         return 1 | ||||||
|       fi |       fi | ||||||
|       token="$(printf "$entry" | egrep -o '"token":"[^"]*' | cut -d : -f 2 | tr -d '"')" |       token="$(printf "%s\n" "$entry" | _egrep_o '"token":"[^"]*' | cut -d : -f 2 | tr -d '"')" | ||||||
|       _debug token $token |       _debug token $token | ||||||
|        |        | ||||||
|       uri="$(printf "$entry" | egrep -o '"uri":"[^"]*'| cut -d : -f 2,3 | tr -d '"' )" |       uri="$(printf "%s\n" "$entry" | _egrep_o '"uri":"[^"]*'| cut -d : -f 2,3 | tr -d '"' )" | ||||||
|       _debug uri $uri |       _debug uri $uri | ||||||
|        |        | ||||||
|       keyauthorization="$token.$thumbprint" |       keyauthorization="$token.$thumbprint" | ||||||
| @ -1556,7 +1580,7 @@ issue() { | |||||||
|         dnsadded='0' |         dnsadded='0' | ||||||
|         txtdomain="_acme-challenge.$d" |         txtdomain="_acme-challenge.$d" | ||||||
|         _debug txtdomain "$txtdomain" |         _debug txtdomain "$txtdomain" | ||||||
|         txt="$(echo -n $keyauthorization | _digest "sha256" | _urlencode)" |         txt="$(printf "%s" "$keyauthorization" | _digest "sha256" | _urlencode)" | ||||||
|         _debug txt "$txt" |         _debug txt "$txt" | ||||||
|         #dns |         #dns | ||||||
|         #1. check use api |         #1. check use api | ||||||
| @ -1778,7 +1802,7 @@ issue() { | |||||||
|       response="$(echo "$response" | _normalizeJson )" |       response="$(echo "$response" | _normalizeJson )" | ||||||
|       _debug2 response "$response" |       _debug2 response "$response" | ||||||
|        |        | ||||||
|       status=$(echo $response | egrep -o  '"status":"[^"]*' | cut -d : -f 2 | tr -d '"') |       status=$(echo "$response" | _egrep_o  '"status":"[^"]*' | cut -d : -f 2 | tr -d '"') | ||||||
|       if [ "$status" = "valid" ] ; then |       if [ "$status" = "valid" ] ; then | ||||||
|         _info "Success" |         _info "Success" | ||||||
|         _stopserver $serverproc |         _stopserver $serverproc | ||||||
| @ -1788,9 +1812,9 @@ issue() { | |||||||
|       fi |       fi | ||||||
|        |        | ||||||
|       if [ "$status" = "invalid" ] ; then |       if [ "$status" = "invalid" ] ; then | ||||||
|          error="$(echo $response | tr -d "\r\n" | egrep -o '"error":\{[^}]*}')" |          error="$(echo "$response" | _egrep_o '"error":\{[^}]*}')" | ||||||
|          _debug2 error "$error" |          _debug2 error "$error" | ||||||
|          errordetail="$(echo $error |  grep -o '"detail": *"[^"]*"' | cut -d '"' -f 4)" |          errordetail="$(echo $error |  _egrep_o '"detail": *"[^"]*"' | cut -d '"' -f 4)" | ||||||
|          _debug2 errordetail "$errordetail" |          _debug2 errordetail "$errordetail" | ||||||
|          if [ "$errordetail" ] ; then |          if [ "$errordetail" ] ; then | ||||||
|            _err "$d:Verify error:$errordetail" |            _err "$d:Verify error:$errordetail" | ||||||
| @ -1830,7 +1854,7 @@ issue() { | |||||||
|   fi |   fi | ||||||
|    |    | ||||||
|    |    | ||||||
|   Le_LinkCert="$(grep -i -o '^Location.*$' $HTTP_HEADER | head -1 | tr -d "\r\n" | cut -d " " -f 2)" |   Le_LinkCert="$(grep -i '^Location.*$' $HTTP_HEADER | head -1 | tr -d "\r\n" | cut -d " " -f 2)" | ||||||
|   _savedomainconf "Le_LinkCert"  "$Le_LinkCert" |   _savedomainconf "Le_LinkCert"  "$Le_LinkCert" | ||||||
| 
 | 
 | ||||||
|   if [ "$Le_LinkCert" ] ; then |   if [ "$Le_LinkCert" ] ; then | ||||||
| @ -1852,7 +1876,7 @@ issue() { | |||||||
| 
 | 
 | ||||||
|   if [ -z "$Le_LinkCert" ] ; then |   if [ -z "$Le_LinkCert" ] ; then | ||||||
|     response="$(echo $response | _dbase64 "multiline" | _normalizeJson )" |     response="$(echo $response | _dbase64 "multiline" | _normalizeJson )" | ||||||
|     _err "Sign failed: $(echo "$response" | grep -o  '"detail":"[^"]*"')" |     _err "Sign failed: $(echo "$response" | _egrep_o  '"detail":"[^"]*"')" | ||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
| @ -1925,7 +1949,7 @@ renew() { | |||||||
|    |    | ||||||
|   IS_RENEW="1" |   IS_RENEW="1" | ||||||
|   issue "$Le_Webroot" "$Le_Domain" "$Le_Alt" "$Le_Keylength" "$Le_RealCertPath" "$Le_RealKeyPath" "$Le_RealCACertPath" "$Le_ReloadCmd" "$Le_RealFullChainPath" |   issue "$Le_Webroot" "$Le_Domain" "$Le_Alt" "$Le_Keylength" "$Le_RealCertPath" "$Le_RealKeyPath" "$Le_RealCACertPath" "$Le_ReloadCmd" "$Le_RealFullChainPath" | ||||||
|   local res=$? |   res=$? | ||||||
|   IS_RENEW="" |   IS_RENEW="" | ||||||
| 
 | 
 | ||||||
|   return $res |   return $res | ||||||
| @ -1961,7 +1985,7 @@ renewAll() { | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| list() { | list() { | ||||||
|   local _raw="$1" |   _raw="$1" | ||||||
|   _initpath |   _initpath | ||||||
|    |    | ||||||
|   _sep="|" |   _sep="|" | ||||||
| @ -1978,7 +2002,11 @@ list() { | |||||||
|       ) |       ) | ||||||
|     done |     done | ||||||
|   else |   else | ||||||
|  |     if _exists column ; then | ||||||
|       list "raw" | column -t -s "$_sep" |       list "raw" | column -t -s "$_sep" | ||||||
|  |     else | ||||||
|  |       list "raw" | tr '|' '\t' | ||||||
|  |     fi | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -2094,8 +2122,12 @@ installcronjob() { | |||||||
|       _err "Can not install cronjob, $PROJECT_ENTRY not found." |       _err "Can not install cronjob, $PROJECT_ENTRY not found." | ||||||
|       return 1 |       return 1 | ||||||
|     fi |     fi | ||||||
|  |     if _exists uname && uname -a | grep solaris >/dev/null ; then | ||||||
|  |       crontab -l | { cat; echo "0 0 * * * $lesh --cron --home \"$LE_WORKING_DIR\" > /dev/null"; } | crontab -- | ||||||
|  |     else | ||||||
|       crontab -l | { cat; echo "0 0 * * * $lesh --cron --home \"$LE_WORKING_DIR\" > /dev/null"; } | crontab - |       crontab -l | { cat; echo "0 0 * * * $lesh --cron --home \"$LE_WORKING_DIR\" > /dev/null"; } | crontab - | ||||||
|     fi |     fi | ||||||
|  |   fi | ||||||
|   if [ "$?" != "0" ] ; then |   if [ "$?" != "0" ] ; then | ||||||
|     _err "Install cron job failed. You need to manually renew your certs." |     _err "Install cron job failed. You need to manually renew your certs." | ||||||
|     _err "Or you can add cronjob by yourself:" |     _err "Or you can add cronjob by yourself:" | ||||||
| @ -2111,7 +2143,11 @@ uninstallcronjob() { | |||||||
|   _info "Removing cron job" |   _info "Removing cron job" | ||||||
|   cr="$(crontab -l | grep "$PROJECT_ENTRY --cron")" |   cr="$(crontab -l | grep "$PROJECT_ENTRY --cron")" | ||||||
|   if [ "$cr" ] ; then  |   if [ "$cr" ] ; then  | ||||||
|  |     if _exists uname && uname -a | grep solaris >/dev/null ; then | ||||||
|  |       crontab -l | sed "/$PROJECT_ENTRY --cron/d" | crontab -- | ||||||
|  |     else | ||||||
|       crontab -l | sed "/$PROJECT_ENTRY --cron/d" | crontab - |       crontab -l | sed "/$PROJECT_ENTRY --cron/d" | crontab - | ||||||
|  |     fi | ||||||
|     LE_WORKING_DIR="$(echo "$cr" | cut -d ' ' -f 9 | tr -d '"')" |     LE_WORKING_DIR="$(echo "$cr" | cut -d ' ' -f 9 | tr -d '"')" | ||||||
|     _info LE_WORKING_DIR "$LE_WORKING_DIR" |     _info LE_WORKING_DIR "$LE_WORKING_DIR" | ||||||
|   fi  |   fi  | ||||||
| @ -2181,9 +2217,7 @@ _detect_profile() { | |||||||
|     return |     return | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   local DETECTED_PROFILE |  | ||||||
|   DETECTED_PROFILE='' |   DETECTED_PROFILE='' | ||||||
|   local SHELLTYPE |  | ||||||
|   SHELLTYPE="$(basename "/$SHELL")" |   SHELLTYPE="$(basename "/$SHELL")" | ||||||
| 
 | 
 | ||||||
|   if [ "$SHELLTYPE" = "bash" ] ; then |   if [ "$SHELLTYPE" = "bash" ] ; then | ||||||
|  | |||||||
| @ -43,7 +43,7 @@ dns_cf_add(){ | |||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   count=$(printf "$response" | grep -o \"count\":[^,]* | cut -d : -f 2) |   count=$(printf "%s\n" "$response" | _egrep_o \"count\":[^,]* | cut -d : -f 2) | ||||||
|   _debug count "$count" |   _debug count "$count" | ||||||
|   if [ "$count" = "0" ] ; then |   if [ "$count" = "0" ] ; then | ||||||
|     _info "Adding record" |     _info "Adding record" | ||||||
| @ -61,7 +61,7 @@ dns_cf_add(){ | |||||||
|     _err "Add txt record error." |     _err "Add txt record error." | ||||||
|   else |   else | ||||||
|     _info "Updating record" |     _info "Updating record" | ||||||
|     record_id=$(printf "$response" | grep -o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \"| head -1) |     record_id=$(printf "%s\n" "$response" | _egrep_o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \"| head -1) | ||||||
|     _debug "record_id" $record_id |     _debug "record_id" $record_id | ||||||
|      |      | ||||||
|     _cf_rest PUT "zones/$_domain_id/dns_records/$record_id"  "{\"id\":\"$record_id\",\"type\":\"TXT\",\"name\":\"$fulldomain\",\"content\":\"$txtvalue\",\"zone_id\":\"$_domain_id\",\"zone_name\":\"$_domain\"}" |     _cf_rest PUT "zones/$_domain_id/dns_records/$record_id"  "{\"id\":\"$record_id\",\"type\":\"TXT\",\"name\":\"$fulldomain\",\"content\":\"$txtvalue\",\"zone_id\":\"$_domain_id\",\"zone_name\":\"$_domain\"}" | ||||||
| @ -103,7 +103,7 @@ _get_root() { | |||||||
|     fi |     fi | ||||||
|      |      | ||||||
|     if printf $response | grep \"name\":\"$h\" >/dev/null ; then |     if printf $response | grep \"name\":\"$h\" >/dev/null ; then | ||||||
|       _domain_id=$(printf "$response" | grep -o \"id\":\"[^\"]*\" | head -1 | cut -d : -f 2 | tr -d \") |       _domain_id=$(printf "%s\n" "$response" | _egrep_o \"id\":\"[^\"]*\" | head -1 | cut -d : -f 2 | tr -d \") | ||||||
|       if [ "$_domain_id" ] ; then |       if [ "$_domain_id" ] ; then | ||||||
|         _sub_domain=$(printf $domain | cut -d . -f 1-$p) |         _sub_domain=$(printf $domain | cut -d . -f 1-$p) | ||||||
|         _domain=$h |         _domain=$h | ||||||
|  | |||||||
| @ -69,7 +69,7 @@ existing_records() { | |||||||
|     return 1 |     return 1 | ||||||
|   fi |   fi | ||||||
|   count=0 |   count=0 | ||||||
|   seg=$(printf "$response" | grep -o "{[^{]*host\":\"$_sub_domain\"[^}]*}") |   seg=$(printf "%s\n" "$response" | _egrep_o "{[^{]*host\":\"$_sub_domain\"[^}]*}") | ||||||
|   _debug seg "$seg" |   _debug seg "$seg" | ||||||
|   if [ -z "$seg" ] ; then |   if [ -z "$seg" ] ; then | ||||||
|     return 0 |     return 0 | ||||||
| @ -77,7 +77,7 @@ existing_records() { | |||||||
| 
 | 
 | ||||||
|   if printf "$response" | grep '"type":"TXT"' > /dev/null ; then |   if printf "$response" | grep '"type":"TXT"' > /dev/null ; then | ||||||
|     count=1 |     count=1 | ||||||
|     record_id=$(printf "$seg" | grep -o \"record_id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") |     record_id=$(printf "%s\n" "$seg" | _egrep_o \"record_id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") | ||||||
|     _debug record_id "$record_id" |     _debug record_id "$record_id" | ||||||
|     return 0     |     return 0     | ||||||
|   fi |   fi | ||||||
| @ -145,9 +145,9 @@ _get_root() { | |||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|     if printf "$response" | grep "$h." >/dev/null ; then |     if printf "$response" | grep "$h." >/dev/null ; then | ||||||
|       seg=$(printf "$response" | grep -o "{[^{]*\"$h\.\"[^}]*\}" ) |       seg=$(printf "%s" "$response" | _egrep_o "{[^{]*\"$h\.\"[^}]*\}" ) | ||||||
|       _debug seg "$seg" |       _debug seg "$seg" | ||||||
|       _domain_id=$(printf "$seg" | grep -o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") |       _domain_id=$(printf "%s" "$seg" | _egrep_o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") | ||||||
|       _debug _domain_id "$_domain_id" |       _debug _domain_id "$_domain_id" | ||||||
|       if [ "$_domain_id" ] ; then |       if [ "$_domain_id" ] ; then | ||||||
|         _sub_domain=$(printf $domain | cut -d . -f 1-$p) |         _sub_domain=$(printf $domain | cut -d . -f 1-$p) | ||||||
|  | |||||||
| @ -152,7 +152,7 @@ _get_root() { | |||||||
|     fi |     fi | ||||||
|      |      | ||||||
|     if printf "$response" | grep "Action completed successful" >/dev/null ; then |     if printf "$response" | grep "Action completed successful" >/dev/null ; then | ||||||
|       _domain_id=$(printf "$response" | grep -o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") |       _domain_id=$(printf "%s\n" "$response" | _egrep_o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \") | ||||||
|       _debug _domain_id "$_domain_id" |       _debug _domain_id "$_domain_id" | ||||||
|       if [ "$_domain_id" ] ; then |       if [ "$_domain_id" ] ; then | ||||||
|         _sub_domain=$(printf $domain | cut -d . -f 1-$p) |         _sub_domain=$(printf $domain | cut -d . -f 1-$p) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user