#!/bin/sh
#
# Copyright (c) 2009 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This script is part of the vivaldi package.
#
# It creates the repository configuration file for package updates, since
# we cannot do this during the vivaldi installation since the repository
# is locked.
#
# This functionality can be controlled by creating the $DEFAULTS_FILE and
# setting "repo_add_once" to "true" or "false" as desired. An empty
# $DEFAULTS_FILE is the same as setting the value to "false".

# System-wide package configuration.
DEFAULTS_FILE="/etc/default/vivaldi"

# sources.list setting for vivaldi updates.
REPOCONFIG="http://repo.vivaldi.com/archive/rpm"
REPOCONFIGREGEX=""

# Install the repository signing key (see also:
# https://www.google.com/linuxrepositories/)
install_rpm_key() {
  # Check to see if all keys already exists.
  rpm -q gpg-pubkey-bf1700f8-54c12a7e > /dev/null 2>&1
  if [ "$?" -eq "0" ]; then
    # Keys already exist
    return 0
  fi

  # RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
  TMPKEY=$(mktemp /tmp/google.sig.XXXXXX)
  if [ -n "$TMPKEY" ]; then
    cat > "$TMPKEY" <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

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
tM3ieUti7MisRAlo8D+k62oVxd+PxZ/9FQA=
=qqBc
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
    rpm --import "$TMPKEY"
    rc=$?
    rm -f "$TMPKEY"
    if [ "$rc" -eq "0" ]; then
      return 0
    fi
  fi
  return 1
}

# Install another key (7b8b44a1) for use with rpm in the future
install_future_rpm_key() {
  # Check to see if the key already exists.
  rpm -q gpg-pubkey-7b8b44a1-567002dc > /dev/null 2>&1
  if [ "$?" -eq "0" ]; then
    # Keys already exist
    return 0
  fi

  # RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
  TMPKEY=$(mktemp /tmp/google.sig.XXXXXX)
  if [ -n "$TMPKEY" ]; then
    cat > "$TMPKEY" <<KEYDATA
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQINBFZwAtwBEADOMTjFD0auHcblFjP1jn9rsAXsi6w/tBxMu5Ck5LE4554e3qjA
STJO8QaWssYOKbMQfOd+9cPRkWF8jgLy44V4hyYb7EOAvThFH3VE6kqRtiDn065I
h8YaupX8GKatnbRmLoKsoPelrW9W55rcqCfE6LP9QErwWlxxpp/QXaRkDP8sbzRV
3BDVQxWPRKi+GlmyGocIGIOxcPzVJP5nqKJ2FfOm16soUYqp/Au/2aZA6LRvNKWB
VEN95AdFC2h+GKFUGZvVIhyj/j93ydvMmDouU0k7Kk6ILZapyNd8yv21xu1jQtoE
db6Z/5uLKAjO1ssilAJItPXdg1oKbEJO6LebLiIslqJUnKzRcaDhhswIOdgGCyFu
G7/XKHEna6fIwHcXDvCgRiS5QLPlzvernFVyPaeW6d2j8p9LAJphdAaKuAUAkEpk
u56Und/g7US3KqVjxgvkiq8NpOPSg9jBQbnDEEvSGPAyvJ7M5YThwhcF552qRVPE
zA8su3zI/sh2+gdOUrSmrAVhGw+RrCcgoXwkyt6YEUE1Yxp8KncSgSEAVkoGNgw4
vWuwR4NF58AP1E4rZzcAErtMRgMrllMybK1SiszlXetncIYkB98g+y9UOIp2Ym46
7BPSWydWHxRybab96VqenYddsuZqehFN8KPdxYEEpybZIkBFGilcm4DKuQARAQAB
tDVWaXZhbGRpIFBhY2thZ2UgQ29tcG9zZXIgS0VZMDIgPHBhY2thZ2VyQHZpdmFs
ZGkuY29tPokCPgQTAQIAKAUCVnAC3AIbAwUJA9zFAAYLCQgHAwIGFQgCCQoLBBYC
AwECHgECF4AACgkQLMJvd3uLRKHM8g//RbVCe1HhcKERcA1GcHGAstTe6SsZqwkz
eN6ieMkpkDuyP1448+/yK5XyYKpsbGlIv398ueiz/m2d6y48OT0IHotOmwnPXCY9
oNUAIW5B5qnpAcZL/KQWEi8vMO8Bkr5ISO83G2tE/uNdoC0lRFF37yA403PKMQaP
knH7R5HqedogNvZ3oUWkaR/EIE2RDz4KkqCUJIXbjCSslTE0X4Y4h1oLxoMJ9Utb
fVpfzbydTICLpo0stQNq6XyQL1qbiyftSljFwZCXJIIzN8XUkixScqo/vQxrJmay
apGEe7wB3jPZP2sKYkNUQY8q8qwEToM7VMluhq3BirSTYYOirlResudr6X5gM5Zl
xLdEbsaxWMEi+FM6U8gSPO52YO/4gio1DAvI4ZYEo3BW/V5RyXm391EF9i8CmVOf
bcssKDTvDCZvv8N0tPhb592cAjh6T8eCHkhVMe53v45tf2HM2u9SDGTRVMLhNgrm
5cN3uwgwca+N62WJHStiD82kEbMFP9phIt2ulR3fOdmKFS/tKPsTosnVNNofWwap
y8xdNg9IubufMJSDtE0nuU8kcAHYzelcllmP+DPwHIP3PyuZzRJkq38o7Fk3l+nh
n6dp16bGqZM3LUNFqat6gUxPVhuuwyEbdi0FiFNxHUuW8BI5cCJ6zlqW+a+RSSDY
lzg9na72YYG5Ag0EVnAC3AEQALzO9ymng+iDoASIAc2hMDn3ykRKYyW0Tgaf+wID
yzwTIm4Uks0h1HE+FbLII3Z9iwDig0NMDbKeyLTPa2xggH3meMoDLZR+R6Q10sEA
FGO36NgBEivMvMKGGo+K35TcEHoVYBnasrui5i/6B0vbZpBfZzwSmXGr5R86WRuU
siOv+ScmuwQPta/AyLFUmlpc0vetcmZ7yoXcX/4TyyqDAZ1vFSsyym9hvFdzPIsc
TDr/z9n0EYCrv3nrek/a3KaTJwiqp4Cs/BeXoEacUsbu5xKiFfyKfBHWKHGIHlxk
kEaAk4b0h0JOi27NnWAVAkLB7fSYqZ4Y8LN0jc8I5op/Kj7DU8cEPkAShekGiGOW
xr9SusRaKnnVlzOF7PtrXcSaELikxPTp2ERu/9xDVm8ctZm6j8wpD0/yAYQ95cBE
V9Op+1op17WDxLeNiYgL94Hr5R4iFDo1sST/khkmcxzMLX6YCw3sot+vjxWhWOKc
sdmJd+VkAiimNTkqyNB1IS+zCvtwG8EbO4ma5qlXQYfcg53wVc//L6Y/JR7L/Vhc
Ika+qzzTNuAbWQG/GRYDqXr3pXMlkpA90fk9j7IHzfU53Me8yHam2Ded/pN9BEZy
jY3aXMYsmmc1ZMeW2GbXtIvIjMJQtIuj5I7WCmkSBnzDHv14ikpMs61cd6M0fLo9
B9kXABEBAAGJAiUEGAECAA8FAlZwAtwCGwwFCQPcxQAACgkQLMJvd3uLRKEKRw//
WKZFfzFSJOAxhcGxxFqLJk6uDfQ5ORkKwaYMEmIR46mI+pEx8p0/5ZigDltaxozd
Wpn2O6CoGkRlN5N2T5W36FtAHrUhbx9u2ykphSdj2cjrYQNeSHSDNeiGMCfh1maB
fL+NlTXOBGD/xTI+kU3tNo2CtxmwfB4FiU5fi4UGhEAZgIC2afGBdn2tXFSPlTIQ
B91ma7O+d76F2SNaOB9SJJoYAPvneaTkmFIepDCzd+g6Yvdn5shGJCNEgAew19x+
4LZc6tjuRu1cNTlnPl/NMuqjFfA5h4uI5g/C0pdoFd8y0bP5grNVAUXc/CE5lGjh
FreUlcG7hhZ5fbIXocpyj2c9qcNAS1LKe0zaBXTjgwW21ZlCgyXakgPobkjR8pa5
+JVneLM8+eJyZJYtWfe7dwItOXrZqPzeQubQHhpahG8ZIbLZFsLbf8CpCdtxRVz6
kKJCnTEcVIIsgZd8mtTcPTz1JTTLv7tMLN0MtAtnZ08AeKPN5ESMbvCCOVEQa3NX
7ac89PDl8YWN32TczMajWZBHJWcQAWSVUgg7AImpQBehdrmXkgsFKHeHwvCeE5Ax
7aJIXVyW5llMGmjqDP+MmhOYgmfSxh8Y+OD3QM0MqBv74QnL27Ny4Bq8MEDN9iDj
iumllxJ2huiZaAstk8jyYjO1D91nhYoyxGSKo8K67HE=
=eFkk
-----END PGP PUBLIC KEY BLOCK-----
KEYDATA
    rpm --import "$TMPKEY"
    rc=$?
    rm -f "$TMPKEY"
    if [ "$rc" -eq "0" ]; then
      return 0
    fi
  fi
  return 1
}

determine_rpm_package_manager() {
  local RELEASE
  LSB_RELEASE="$(which lsb_release 2> /dev/null)"
  if [ -x "$LSB_RELEASE" ]; then
    RELEASE=$(lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-)
    case $RELEASE in
    "Fedora")
      PACKAGEMANAGER=yum
      ;;
    "Mageia"|"MandrivaLinux")
      PACKAGEMANAGER=urpmi
      ;;
    "SUSE LINUX")
      PACKAGEMANAGER=yast
      ;;
    esac
  fi

  if [ "$PACKAGEMANAGER" ]; then
    return
  fi

  # Fallback methods that are probably unnecessary on modern systems.
  if [ -f "/etc/lsb-release" ]; then
    # file missing on Fedora, does not contain DISTRIB_ID on OpenSUSE.
    eval $(sed -e '/DISTRIB_ID/!d' /etc/lsb-release)
    case $DISTRIB_ID in
    MandrivaLinux)
      PACKAGEMANAGER=urpmi
      ;;
    esac
  fi

  if [ "$PACKAGEMANAGER" ]; then
    return
  fi

  if [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then
    PACKAGEMANAGER=yum
  elif [ -f "/etc/SuSE-release" ]; then
    PACKAGEMANAGER=yast
  elif [ -f "/etc/mandriva-release" ]; then
    PACKAGEMANAGER=urpmi
  fi
}

DEFAULT_ARCH="x86_64"
YUM_REPO_FILE="/etc/yum.repos.d/vivaldi.repo"
ZYPPER_REPO_FILE="/etc/zypp/repos.d/vivaldi.repo"
URPMI_REPO_FILE="/etc/urpmi/urpmi.cfg"

install_yum() {
  install_rpm_key

  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  if [ -d "/etc/yum.repos.d" ]; then
cat > "$YUM_REPO_FILE" << REPOCONTENT
[vivaldi]
name=vivaldi
baseurl=$REPOCONFIG/$DEFAULT_ARCH
enabled=1
gpgcheck=1
gpgkey=http://repo.vivaldi.com/archive/linux_signing_key.pub
REPOCONTENT
  fi
}

# This is called by the cron job, rather than in the RPM postinstall.
# We cannot do this during the install when urpmi is running due to
# database locking. We also need to enable the repository, and we can
# only do that while we are online.
# see: https://qa.mandriva.com/show_bug.cgi?id=31893
configure_urpmi() {
  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  urpmq --list-media | grep -q -s "^vivaldi$"
  if [ "$?" -eq "0" ]; then
    # Repository already configured
    return 0
  fi
  urpmi.addmedia --update \
    "vivaldi" "$REPOCONFIG/$DEFAULT_ARCH"
}

install_urpmi() {
  # urpmi not smart enough to pull media_info/pubkey from the repository?
  install_rpm_key

  # Defer urpmi.addmedia to configure_urpmi() in the cron job.
  # See comment there.
  #
  # urpmi.addmedia --update \
  #   "vivaldi" "$REPOCONFIG/$DEFAULT_ARCH"
}

install_yast() {
  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  # We defer adding the key to later. See comment in the cron job.

  # Ideally, we would run: zypper addrepo -t YUM -f \
  # "$REPOCONFIG/$DEFAULT_ARCH" "vivaldi"
  # but that does not work when zypper is running.
  if [ -d "/etc/zypp/repos.d" ]; then
cat > "$ZYPPER_REPO_FILE" << REPOCONTENT
[vivaldi]
name=vivaldi
enabled=1
autorefresh=1
baseurl=$REPOCONFIG/$DEFAULT_ARCH
type=rpm-md
keeppackages=0
REPOCONTENT
  fi
}

# Check if the automatic repository configuration is done, so we know when to
# stop trying.
verify_install() {
  # It's probably enough to see that the repo configs have been created. If they
  # aren't configured properly, update_bad_repo should catch that when it's run.
  case $1 in
  "yum")
    [ -f "$YUM_REPO_FILE" ]
    ;;
  "yast")
    [ -f "$ZYPPER_REPO_FILE" ]
    ;;
  "urpmi")
    urpmq --list-url | grep -q -s "\bvivaldi\b"
    ;;
  esac
}

# Update the Google repository if it's not set correctly.
update_bad_repo() {
  if [ ! "$REPOCONFIG" ]; then
    return 0
  fi

  determine_rpm_package_manager

  case $PACKAGEMANAGER in
  "yum")
    update_repo_file "$YUM_REPO_FILE"
    ;;
  "yast")
    update_repo_file "$ZYPPER_REPO_FILE"
    ;;
  "urpmi")
    update_urpmi_cfg
    ;;
  esac
}

update_repo_file() {
  REPO_FILE="$1"

  # Don't do anything if the file isn't there, since that probably means the
  # user disabled it.
  if [ ! -r "$REPO_FILE" ]; then
    return 0
  fi

  # Check if the correct repository configuration is in there.
  REPOMATCH=$(grep "^baseurl=$REPOCONFIG/$DEFAULT_ARCH" "$REPO_FILE" \
    2>/dev/null)
  # If it's there, nothing to do
  if [ "$REPOMATCH" ]; then
    return 0
  fi

  # Check if it's there but disabled by commenting out (as opposed to using the
  # 'enabled' setting).
  MATCH_DISABLED=$(grep "^[[:space:]]*#.*baseurl=$REPOCONFIG/$DEFAULT_ARCH" \
    "$REPO_FILE" 2>/dev/null)
  if [ "$MATCH_DISABLED" ]; then
    # It's OK for it to be disabled, as long as nothing bogus is enabled in its
    # place.
    ACTIVECONFIGS=$(grep "^baseurl=.*" "$REPO_FILE" 2>/dev/null)
    if [ ! "$ACTIVECONFIGS" ]; then
      return 0
    fi
  fi

  # If we get here, the correct repository wasn't found, or something else is
  # active, so fix it. This assumes there is a 'baseurl' setting, but if not,
  # then that's just another way of disabling, so we won't try to add it.
  sed -i -e "s,^baseurl=.*,baseurl=$REPOCONFIG/$DEFAULT_ARCH," "$REPO_FILE"
}

update_urpmi_cfg() {
  REPOCFG=$(urpmq --list-url | grep "\bvivaldi\b")
  if [ ! "$REPOCFG" ]; then
    # Don't do anything if the repo isn't there, since that probably means the
    # user deleted it.
    return 0
  fi

  # See if it's the right repo URL
  REPOMATCH=$(echo "$REPOCFG" | grep "\b$REPOCONFIG/$DEFAULT_ARCH\b")
  # If so, nothing to do
  if [ "$REPOMATCH" ]; then
    return 0
  fi

  # Looks like it's the wrong URL, so recreate it.
  urpmi.removemedia "vivaldi" && \
    urpmi.addmedia --update "vivaldi" "$REPOCONFIG/$DEFAULT_ARCH"
}

# We only remove the repository configuration during a purge. Since RPM has
# no equivalent to dpkg --purge, the code below is actually never used. We
# keep it only for reference purposes, should we ever need it.
#
#remove_yum() {
#  rm -f "$YUM_REPO_FILE"
#}
#
#remove_urpmi() {
#  # Ideally, we would run: urpmi.removemedia "vivaldi"
#  # but that does not work when urpmi is running.
#  # Sentinel comment text does not work either because urpmi.update removes
#  # all comments. So we just delete the entry that matches what we originally
#  # inserted. If such an entry was added manually, that's tough luck.
#  if [ -f "$URPMI_REPO_FILE" ]; then
#    sed -i '\_^vivaldi $REPOCONFIG/$DEFAULT_ARCH {$_,/^}$/d' "$URPMI_REPO_FILE"
#  fi
#}
#
#remove_yast() {
#  # Ideally, we would run: zypper removerepo "vivaldi"
#  # but that does not work when zypper is running.
#  rm -f /etc/zypp/repos.d/vivaldi.repo
#}

DEFAULT_ARCH="x86_64"

get_lib_dir() {
  if [ "$DEFAULT_ARCH" = "i386" ]; then
    LIBDIR=lib
  elif [ "$DEFAULT_ARCH" = "x86_64" ]; then
    LIBDIR=lib64
  else
    echo Unknown CPU Architecture: "$DEFAULT_ARCH"
    exit 1
  fi
}

# Check for presence of future key and add if missing
install_future_rpm_key

## MAIN ##
DEFAULTS_FILE="/etc/default/vivaldi"
if [ -r "$DEFAULTS_FILE" ]; then
  . "$DEFAULTS_FILE"
fi

install_rpm_key

if [ "$repo_add_once" = "true" ]; then
  determine_rpm_package_manager

  # The initial install happens in the post-install scripts, but there have been
  # reports of configuration problems, so just verify that everything looks
  # good, and if not, try to install again.
  verify_install $PACKAGEMANAGER
  if [ $? -ne 0 ]; then
    install_${PACKAGEMANAGER}
  fi

  # Now do any extra configuration that couldn't be done by post-install.
  case $PACKAGEMANAGER in
  "urpmi")
    # We need to configure urpmi after the install has finished.
    # See configure_urpmi() for details.
    configure_urpmi
    ;;
  esac

  if [ $? -eq 0 ]; then
    # Before we quit auto-configuration, check that everything looks sane, since
    # part of this happened during package install and we don't have the return
    # value of that process.
    verify_install $PACKAGEMANAGER
    if [ $? -eq 0 ]; then
      sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' \
        "$DEFAULTS_FILE"
    fi
  fi
else
  update_bad_repo
fi
