github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/scripts/diff-config.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  jq_cmd=jq
     4  [[ $(type -P "$jq_cmd") ]] || { 
     5  	echo "'$jq_cmd' command line JSON processor not found";
     6  	echo "Please install on linux with 'sudo apt-get install jq'"
     7  	echo "Please install on mac with 'brew install jq'"
     8  	exit 1; 
     9  }
    10  
    11  if [ -z "$FROM" ]
    12  then
    13    echo "Missing FROM version. Usage: make diff-config FROM=1.1.1 TO=2.2.2"
    14    exit 1
    15  fi
    16  
    17  if [ -z "$TO" ]
    18  then
    19    echo "Missing TO version. Usage: make diff-config FROM=1.1.1 TO=2.2.2"
    20    exit 1
    21  fi
    22  
    23  # Returns the config file for a specific release
    24  fetch_config() {
    25    local url="https://releases.mattermost.com/$1/mattermost-$1-linux-amd64.tar.gz"
    26    curl -sf "$url" | tar -xzOf - mattermost/config/config.json | jq -S .
    27  }
    28  
    29  echo Fetching config files
    30  from_config="$(fetch_config "$FROM")"
    31  if [ -z "$from_config" ]
    32  then
    33    echo Invalid version "$FROM"
    34    exit 1
    35  fi
    36  
    37  to_config=$(fetch_config "$TO")
    38  if [ -z "$to_config" ]
    39  then
    40    echo Invalid version "$TO"
    41    exit 1
    42  fi
    43  
    44  echo Comparing config files
    45  diff -y <(echo "$from_config") <(echo "$to_config")
    46  
    47  # We ignore exits with 1 since it just means there's a difference, which is fine for us.
    48  diff_exit=$?
    49  if [ $diff_exit -eq 1 ]; then
    50    exit 0
    51  else
    52    exit $diff_exit
    53  fi