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