#!/usr/bin/env ruby
# SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2019 Harald Sitter <sitter@kde.org>

# Intercept apt calls and inform the user that upgrade is not a valid argument
# on neon.

# Apt is a CLI tool. I don't think this is worth faffing about with translations
# for, so we just use verbatim strings here without any l10n rigging.

# When in batch mode let 'upgrade' through all the same. Batch mode is when
# no tty is attached to stdout. This is in line with how apt's interface
# stability warning works.
# This is specifically to prevent scripts from breaking. e.g. ubiquity
# will attempt to run upgrade but should generally qualify as !tty.
if ARGV.include?('upgrade') && STDOUT.isatty
  warn 'On KDE neon you should use `pkcon update` to install updates.'
  warn 'If you absolutely must use apt you do have to use dist-upgrade or' \
       ' full-upgrade in place of the upgrade command.'
  warn '  https://neon.kde.org/faq#command-to-update'

  abort 'Abort.' unless ARGV.include?('-y') || ARGV.include?('--yes')
end

basename = File.basename(__FILE__)
exec("/usr/bin/#{basename}", *ARGV)
