Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package opi for openSUSE:Factory checked in 
at 2022-01-24 23:10:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opi (Old)
 and      /work/SRC/openSUSE:Factory/.opi.new.1938 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "opi"

Mon Jan 24 23:10:03 2022 rev:26 rq:948388 version:2.4.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/opi/opi.changes  2021-10-25 15:18:49.785728016 
+0200
+++ /work/SRC/openSUSE:Factory/.opi.new.1938/opi.changes        2022-01-24 
23:10:38.126494930 +0100
@@ -1,0 +2,6 @@
+Mon Jan 24 12:01:47 UTC 2022 - Dominik Heidler <dheid...@suse.de>
+
+- Version 2.4.3
+- Fix for tumbleweed based MicroOS
+
+-------------------------------------------------------------------

Old:
----
  opi-2.4.2.tar.gz

New:
----
  opi-2.4.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ opi.spec ++++++
--- /var/tmp/diff_new_pack.QI60r6/_old  2022-01-24 23:10:40.134481206 +0100
+++ /var/tmp/diff_new_pack.QI60r6/_new  2022-01-24 23:10:40.138481179 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package opi
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           opi
-Version:        2.4.2
+Version:        2.4.3
 Release:        0
 Summary:        OBS Package Installer (CLI)
 License:        GPL-3.0-only

++++++ opi-2.4.2.tar.gz -> opi-2.4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/CHANGELOG.md new/opi-2.4.3/CHANGELOG.md
--- old/opi-2.4.2/CHANGELOG.md  2021-10-25 10:23:31.000000000 +0200
+++ new/opi-2.4.3/CHANGELOG.md  1970-01-01 01:00:00.000000000 +0100
@@ -1,243 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a 
Changelog](https://keepachangelog.com/en/1.0.0/),
-and this project adheres to [Semantic 
Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [Unreleased]
-
-## [2.4.2] - 2021-10-25
-
-## Changed
-
-- Switched to opensuse provided opi proxy
-
-## [2.4.1] - 2021-10-11
-
-## Changed
-
-- Don't expect output to be a tty
-
-## [2.4.0] - 2021-10-11
-
-## Added
-
-- Scroll results if they not fit on the screen
-- Plugin for atom editor
-
-## [2.3.0] - 2021-06-06
-
-### Changed
-
-- Fixed gpgcheck entry in `add_repo()`
-- Allowed using multiple query keywords that are combined using AND
-
-### Added
-
-- Plugin for sublime text
-- Plugin for yandex-disk
-
-## [2.2.0] - 2021-08-20
-
-### Added
-
-- Plugin for MEGA
-- Plugin for Edge Beta
-- Argument parser with option for reverse output order
-
-## [2.1.1] - 2021-08-10
-
-### Added
-
-- Plugin for Brave Browser [#60](https://github.com/openSUSE/opi/pull/60)
-
-## [2.1.0] - 2021-07-05
-
-### Added
-
-- Support for dnf backend [#58](https://github.com/openSUSE/opi/pull/58)
-
-### Changed
-
-- Deduplicated packman repo creation code
-
-## [2.0.0] - 2021-05-03
-
-### Added
-
-- [Automated tests](https://github.com/openSUSE/opi/actions)
-- Extensible Plugin interface for plugins (eg. [this 
one](https://github.com/openSUSE/opi/blob/master/opi/plugins/vivaldi.py))
-- Added plugins for chrome, dotnet, edge, teams, packman, plex, skype, slack, 
teamviewer, vivaldi, vscode, vscodium, zoom
-
-### Changed
-
-- Rewrote the complete tool in python3
-
-## [0.10.0] - 2021-01-17
-
-### Added
-
-- Microsoft Teams installer [#34](https://github.com/openSUSE/opi/pulls/34)
-- Warning for personal repository 
[#35](https://github.com/openSUSE/opi/pulls/35)
-
-## [0.9.0] - 2020-10-03
-
-### Added
-
-- Help (-h, --help) and version (-v, --version) option
-
-### Changed
-
-- Filter out -devel, -docs and -lang packages 
[#30](https://github.com/openSUSE/opi/pulls/30)
-- Don't show i586 packages on x86_64 system
-
-## [0.8.3] - 2020-07-25
-
-### Fixed
-
-- ffmpeg/libav packages due to Packman update
-
-## [0.8.2] - 2020-05-16
-
-### Fixed
-
-- Ghost process on XML parsing failure 
[#27](https://github.com/openSUSE/opi/pulls/27)
-
-## [0.8.1] - 2020-04-03
-
-### Fixed
-
-- OBS limit error when searching php, test, etc.
-
-## [0.8.0]
-
-### Changed
-
-- Type number `0` to exit [#26](https://github.com/openSUSE/opi/pulls/26)
-
-## [0.7.1]
-
-### Fixed
-
-- Missing `use File::Temp;` [#24](https://github.com/openSUSE/opi/issues/24)
-
-## [0.7.0]
-
-### Changed
-
-- Force repo URL to HTTPS [#22](https://github.com/openSUSE/opi/issues/22)
-
-### Fixed
-
-- Ctrl + C handling of spinner
-
-## [0.6.0]
-
-### Added
-
-- Search spinner [#21](https://github.com/openSUSE/opi/issues/21)
-
-### Fixed
-
-- Packman repo doesn't have *.repo file 
[#19](https://github.com/openSUSE/opi/issues/19)
-- Long version numbers are cutted 
[#17](https://github.com/openSUSE/opi/issues/17)
-
-## [0.5.2]
-
-### Fixed
-
-- Trim "NAME" and "VERSION" string 
[#13](https://github.com/openSUSE/opi/issues/13)
-
-## [0.5.1]
-
-### Fixed
-
-- Fix dependency not found issue 
[#11](https://github.com/openSUSE/opi/issues/11)
-
-## [0.5.0]
-
-### Added
-
-- API proxy server to prevent hard-coded passwords in the script 
[#4](https://github.com/openSUSE/opi/issues/4)
-
-## [0.4.0]
-
-### Added
-
-- PMBS (Packman Build Service) support 
[#5](https://github.com/openSUSE/opi/issues/5)
-
-## [0.3.2]
-
-### Fixed
-
-- `opi opi` cannot find `opi` [#9](https://github.com/openSUSE/opi/issues/9)
-
-## [0.3.1]
-
-### Fixed
-
-- Remove quotes from version number. So Leap and SLE can search packages.
-
-## [0.3.0]
-
-### Added
-
-- Support SLE [#8](https://github.com/openSUSE/opi/issues/8)
-
-### Changed
-
-- Better print column alignment
-
-## [0.2.0]
-
-### Added
-
-- Install Packman Codecs with `opi packman` or `opi codecs` 
[#6](https://github.com/openSUSE/opi/issues/6)
-- Install Skype with `opi skype` [#6](https://github.com/openSUSE/opi/issues/6)
-- Install VS Code with `opi vs code` 
[#6](https://github.com/openSUSE/opi/issues/6)
-
-## [0.1.2]
-
-### Fixed
-
-- Fixed lost of "noarch" packages 
[#3](https://github.com/openSUSE/opi/issues/3)
-- Be able to search with dashes in keywords 
[#2](https://github.com/openSUSE/opi/issues/2)
-
-## [0.1.1]
-
-### Fixed
-
-- Removed XML dump which may cause problems.
-
-## [0.1.0]
-
-### Added
-
-- Search packages from OBS
-- List properly sorted search result
-- Use different colors for official, experimental and personal projects
-- Choose package and install
-- Keep or remove repository after installation
-
-[Unreleased]: https://github.com/openSUSE/opi/compare/v0.10.0...HEAD
-[0.10.0]: https://github.com/openSUSE/opi/compare/v0.9.0...v0.10.0
-[0.9.0]: https://github.com/openSUSE/opi/compare/v0.8.3...v0.9.0
-[0.8.3]: https://github.com/openSUSE/opi/compare/v0.8.2...v0.8.3
-[0.8.2]: https://github.com/openSUSE/opi/compare/v0.8.1...v0.8.2
-[0.8.1]: https://github.com/openSUSE/opi/compare/v0.8.0...v0.8.1
-[0.8.0]: https://github.com/openSUSE/opi/compare/v0.7.1...v0.8.0
-[0.7.1]: https://github.com/openSUSE/opi/compare/v0.7.0...v0.7.1
-[0.7.0]: https://github.com/openSUSE/opi/compare/v0.6.0...v0.7.0
-[0.6.0]: https://github.com/openSUSE/opi/compare/v0.5.2...v0.6.0
-[0.5.2]: https://github.com/openSUSE/opi/compare/v0.5.1...v0.5.2
-[0.5.1]: https://github.com/openSUSE/opi/compare/v0.5.0...v0.5.1
-[0.5.0]: https://github.com/openSUSE/opi/compare/v0.4.0...v0.5.0
-[0.4.0]: https://github.com/openSUSE/opi/compare/v0.3.2...v0.4.0
-[0.3.2]: https://github.com/openSUSE/opi/compare/v0.3.1...v0.3.2
-[0.3.1]: https://github.com/openSUSE/opi/compare/v0.3.0...v0.3.1
-[0.3.0]: https://github.com/openSUSE/opi/compare/v0.2.0...v0.3.0
-[0.2.0]: https://github.com/openSUSE/opi/compare/v0.1.2...v0.2.0
-[0.1.2]: https://github.com/openSUSE/opi/compare/v0.1.1...v0.1.2
-[0.1.1]: https://github.com/openSUSE/opi/compare/v0.1.0...v0.1.1
-[0.1.0]: https://github.com/openSUSE/opi/releases/tag/v0.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/bin/opi new/opi-2.4.3/bin/opi
--- old/opi-2.4.2/bin/opi       2021-10-25 10:23:31.000000000 +0200
+++ new/opi-2.4.3/bin/opi       2022-01-24 12:31:27.000000000 +0100
@@ -54,7 +54,6 @@
                If multiple query arguments are provided only results matching 
all of them are returned.
        '''))
        ap.add_argument('-v', '--version', action='version', version=('opi 
version ' +  __version__))
-       ap.add_argument('-r', '--reversed-output', action='store_true', 
help='print the search results in reverse')
 
        args = ap.parse_args()
 
@@ -74,23 +73,15 @@
                sys.exit()
        binary_names = opi.get_binary_names(binaries)
 
-       # Print package name options
-       package_name_list = opi.get_package_name_list(binary_names, 
reverse=args.reversed_output)
-
-       # Select a package name option
-       selected_name_num = opi.ask_number(1, len(binary_names), 
text=package_name_list)
-       selected_name = binary_names[selected_name_num-1]
+       # Print and select a package name option
+       selected_name = opi.ask_for_option(binary_names)
        print("You have selected package name: %s" % selected_name)
-       binary_options = opi.get_binaries_by_name(selected_name, binaries)
 
-       # Print binary package options
-       opi.print_binary_options(binary_options)
+       binary_options = opi.get_binaries_by_name(selected_name, binaries)
 
-       # Select a binary package option
-       selected_binary_num = opi.ask_number(1, len(binary_options))
-       selected_binary = binary_options[selected_binary_num-1]
-       print("You have selected binary package: ", end='')
-       opi.print_binary_option(selected_binary)
+       # Print and select a binary package option
+       selected_binary = opi.ask_for_option(binary_options, 
option_filter=opi.format_binary_option, disable_pager=True)
+       print("You have selected binary package: %s" % 
opi.format_binary_option(selected_binary, table=False))
        if opi.is_personal_project(selected_binary['project']):
                print(opi.colored(
                        "BE CAREFUL! The package is from a personal repository 
and NOT reviewed by others.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/__init__.py 
new/opi-2.4.3/opi/__init__.py
--- old/opi-2.4.2/opi/__init__.py       2021-10-25 10:23:31.000000000 +0200
+++ new/opi-2.4.3/opi/__init__.py       2022-01-24 12:31:27.000000000 +0100
@@ -3,6 +3,7 @@
 import subprocess
 import re
 import tempfile
+import math
 
 import requests
 import lxml.etree
@@ -50,7 +51,7 @@
                        os_release[key] = value
        name = os_release['NAME']
        version = os_release.get('VERSION') # VERSION is not set for TW
-       if name == 'openSUSE Tumbleweed':
+       if name == 'openSUSE Tumbleweed' or name == 'openSUSE MicroOS':
                project = 'openSUSE:Factory'
        elif name == 'openSUSE Leap':
                project = 'openSUSE:Leap:' + version
@@ -296,33 +297,49 @@
        answer = input(q) or default_answer
        return answer.strip().lower() == 'y'
 
-def ask_number(min_num, max_num, question="Pick a number (0 to quit):", 
text=None):
+def ask_for_option(options, question="Pick a number (0 to quit):", 
option_filter=lambda a: a, disable_pager=False):
        """
-               Ask the user for a number to pick with defined min and max.
+               Ask the user for a number to pick in order to select an option.
                Exit if the number is 0.
-               Specify the number with question.
-               If text is defined, this string will be shown above the prompt.
-               If needed, a pager will be used.
+               Specify the number with question and the corresponding option 
will be returned.
+               Via option_filter a callback function to format option entries 
can be supplied,
+               but this doesn't work with the pager.
+               If needed, a pager will be used, unless disable_pager is True.
        """
-       if text:
-               text_len_lines = len(text.split('\n'))
-               if not sys.stdout.isatty() or text_len_lines < 
(os.get_terminal_size().lines-1):
-                       # no pager needed
-                       print(text)
-                       input_string = input(question + ' ')
-               else:
-                       input_string = pager.ask_number_with_pager(text, 
question)
-       else:
+
+       padding_len = math.floor(math.log(len(options), 10))
+       i = 1
+       numbered_options = []
+       terminal_width = os.get_terminal_size().columns-1 if 
sys.stdout.isatty() else 0
+       for option in options:
+               number = "%%%id. " % (padding_len+1) % i
+               numbered_option = number + option_filter(option)
+               if terminal_width and not disable_pager:
+                       # break too long lines:
+                       # if pager is disabled this might mean that we get 
terminal sequences here
+                       # which might get broken by some spaces and newlines.
+                       # also too long lines are not fatal outside of the pager
+                       while len(numbered_option) > terminal_width:
+                               
numbered_options.append(numbered_option[:terminal_width])
+                               numbered_option = ' '*len(number) + 
numbered_option[terminal_width:]
+               numbered_options.append(numbered_option)
+               i += 1
+       text = '\n'.join(numbered_options)
+       if not sys.stdout.isatty() or len(numbered_options) < 
(os.get_terminal_size().lines-1) or disable_pager:
+               # no pager needed
+               print(text)
                input_string = input(question + ' ')
+       else:
+               input_string = pager.ask_number_with_pager(text, question)
 
        input_string = input_string.strip() or '0'
        num = int(input_string) if input_string.isdecimal() else -1
        if num == 0:
                sys.exit()
-       elif num >= min_num and num <= max_num:
-               return num
+       elif not (num >= 1 and num <= len(options)):
+               return ask_for_option(options, question, option_filter, 
disable_pager)
        else:
-               return ask_number(min_num, max_num, question, text)
+               return options[num-1]
 
 def ask_keep_repo(repo):
        if not ask_yes_or_no('Do you want to keep the repo "%s"?' % repo, 'y'):
@@ -331,23 +348,7 @@
                if get_backend() == BackendConstants.dnf:
                        subprocess.call(['sudo', 'rm', '/etc/zypp/repos.d/' + 
repo + '.repo'])
 
-def get_package_name_list(package_names, reverse=False):
-       package_list = []
-       i = 1
-       for package_name in package_names:
-               package_list.append("%2d. %s" % (i, package_name))
-               i += 1
-       if reverse:
-               package_list.reverse()
-       return '\n'.join(package_list)
-
-def print_binary_options(binaries):
-       i = 1
-       for binary in binaries:
-               print_binary_option(binary, i)
-               i += 1
-
-def print_binary_option(binary, number=None):
+def format_binary_option(binary, table=True):
        if is_official_project(binary['project']):
                color = 'green'
                symbol = '+'
@@ -364,7 +365,7 @@
 
        colored_name = colored('%s %s' % (project[0:39], symbol), color)
 
-       if number:
-               print('%2d. %-50s | %-25s | %s' % (number, colored_name, 
binary['version'][0:25], binary['arch']))
+       if table:
+               return '%-50s | %-25s | %s' % (colored_name, 
binary['version'][0:25], binary['arch'])
        else:
-               print('%s | %s | %s' % (colored_name, binary['version'], 
binary['arch']))
+               return '%s | %s | %s' % (colored_name, binary['version'], 
binary['arch'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/plugins/chrome.py 
new/opi-2.4.3/opi/plugins/chrome.py
--- old/opi-2.4.2/opi/plugins/chrome.py 2021-10-25 10:23:31.000000000 +0200
+++ new/opi-2.4.3/opi/plugins/chrome.py 2022-01-24 12:31:27.000000000 +0100
@@ -12,6 +12,13 @@
                if not opi.ask_yes_or_no("Do you want to install Chrome from 
Google repository?", 'y'):
                        return
 
+               print("Which version do you want to install?")
+               option = opi.ask_for_option(options=[
+                       'google-chrome-stable',
+                       'google-chrome-beta',
+                       'google-chrome-unstable',
+               ])
+
                opi.add_repo(
                        filename = 'google-chrome',
                        name = 'google-chrome',
@@ -19,5 +26,10 @@
                        gpgkey = 
'https://dl.google.com/linux/linux_signing_key.pub'
                )
 
-               opi.install_packages(['google-chrome-stable'])
+               # prevent post install script from messing with our repos
+               defaults_file = option.replace('-stable', '')
+               subprocess.call(['sudo', 'rm', '-f', '/etc/default/%s' % 
defaults_file])
+               subprocess.call(['sudo', 'touch', '/etc/default/%s' % 
defaults_file])
+
+               opi.install_packages([option])
                opi.ask_keep_repo('google-chrome')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/plugins/ms_edge.py 
new/opi-2.4.3/opi/plugins/ms_edge.py
--- old/opi-2.4.2/opi/plugins/ms_edge.py        1970-01-01 01:00:00.000000000 
+0100
+++ new/opi-2.4.3/opi/plugins/ms_edge.py        2022-01-24 12:31:27.000000000 
+0100
@@ -0,0 +1,37 @@
+import opi
+import subprocess
+import textwrap
+
+from opi.plugins import BasePlugin
+
+class MSEdge(BasePlugin):
+       main_query = "msedge"
+       description = "Microsoft Edge"
+       queries = ('microsoft-edge', 'msedge', 'edge')
+
+       @classmethod
+       def run(cls, query):
+               if not opi.ask_yes_or_no("Do you want to install Microsoft Edge 
from Microsoft repository?", 'y'):
+                       return
+
+               print("Which version do you want to install?")
+               option = opi.ask_for_option(options=[
+                       'microsoft-edge-stable',
+                       'microsoft-edge-beta',
+                       'microsoft-edge-dev',
+               ])
+
+               opi.add_repo(
+                       filename = 'microsoft-edge',
+                       name = 'Microsoft Edge',
+                       url = 'https://packages.microsoft.com/yumrepos/edge',
+                       gpgkey = 
'https://packages.microsoft.com/keys/microsoft.asc'
+               )
+
+               # prevent post install script from messing with our repos
+               defaults_file = option.replace('-stable', '')
+               subprocess.call(['sudo', 'rm', '-f', '/etc/default/%s' % 
defaults_file])
+               subprocess.call(['sudo', 'touch', '/etc/default/%s' % 
defaults_file])
+
+               opi.install_packages([option])
+               opi.ask_keep_repo('microsoft-edge')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/plugins/ms_edge_beta.py 
new/opi-2.4.3/opi/plugins/ms_edge_beta.py
--- old/opi-2.4.2/opi/plugins/ms_edge_beta.py   2021-10-25 10:23:31.000000000 
+0200
+++ new/opi-2.4.3/opi/plugins/ms_edge_beta.py   1970-01-01 01:00:00.000000000 
+0100
@@ -1,28 +0,0 @@
-import opi
-import subprocess
-
-from opi.plugins import BasePlugin
-
-class MSEdgeBeta(BasePlugin):
-       main_query = "msedge-beta"
-       description = "Microsoft Edge Beta"
-       queries = ('microsoft-edge-beta', 'msedge-beta', 'edge-beta')
-
-       @classmethod
-       def run(cls, query):
-               if not opi.ask_yes_or_no("Do you want to install Microsoft Edge 
Beta from Microsoft repository?", 'y'):
-                       return
-
-               opi.add_repo(
-                       filename = 'microsoft-edge',
-                       name = 'Microsoft Edge',
-                       url = 'https://packages.microsoft.com/yumrepos/edge',
-                       gpgkey = 
'https://packages.microsoft.com/keys/microsoft.asc'
-               )
-
-               # prevent post install script from messing with our repos
-               subprocess.call(['sudo', 'rm', '-f', 
'/etc/default/microsoft-edge-beta'])
-               subprocess.call(['sudo', 'touch', 
'/etc/default/microsoft-edge-beta'])
-
-               opi.install_packages(['microsoft-edge-beta'])
-               opi.ask_keep_repo('microsoft-edge')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/plugins/ms_edge_dev.py 
new/opi-2.4.3/opi/plugins/ms_edge_dev.py
--- old/opi-2.4.2/opi/plugins/ms_edge_dev.py    2021-10-25 10:23:31.000000000 
+0200
+++ new/opi-2.4.3/opi/plugins/ms_edge_dev.py    1970-01-01 01:00:00.000000000 
+0100
@@ -1,28 +0,0 @@
-import opi
-import subprocess
-
-from opi.plugins import BasePlugin
-
-class MSEdgeDev(BasePlugin):
-       main_query = "msedge-dev"
-       description = "Microsoft Edge Dev"
-       queries = ('microsoft-edge-dev', 'msedge-dev', 'edge-dev')
-
-       @classmethod
-       def run(cls, query):
-               if not opi.ask_yes_or_no("Do you want to install Microsoft Edge 
Dev from Microsoft repository?", 'y'):
-                       return
-
-               opi.add_repo(
-                       filename = 'microsoft-edge',
-                       name = 'Microsoft Edge',
-                       url = 'https://packages.microsoft.com/yumrepos/edge',
-                       gpgkey = 
'https://packages.microsoft.com/keys/microsoft.asc'
-               )
-
-               # prevent post install script from messing with our repos
-               subprocess.call(['sudo', 'rm', '-f', 
'/etc/default/microsoft-edge-dev'])
-               subprocess.call(['sudo', 'touch', 
'/etc/default/microsoft-edge-dev'])
-
-               opi.install_packages(['microsoft-edge-dev'])
-               opi.ask_keep_repo('microsoft-edge')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/plugins/vivaldi.py 
new/opi-2.4.3/opi/plugins/vivaldi.py
--- old/opi-2.4.2/opi/plugins/vivaldi.py        2021-10-25 10:23:31.000000000 
+0200
+++ new/opi-2.4.3/opi/plugins/vivaldi.py        2022-01-24 12:31:27.000000000 
+0100
@@ -12,6 +12,11 @@
                if not opi.ask_yes_or_no("Do you want to install Vivaldi from 
Vivaldi repository?", 'y'):
                        return
 
+               option = opi.ask_for_option(options=[
+                       'vivaldi-stable',
+                       'vivaldi-snapshot',
+               ])
+
                opi.add_repo(
                        filename = 'vivaldi',
                        name = 'vivaldi',
@@ -19,5 +24,5 @@
                        gpgkey = 
'https://repo.vivaldi.com/archive/linux_signing_key.pub'
                )
 
-               opi.install_packages(['vivaldi-stable'])
+               opi.install_packages([option])
                opi.ask_keep_repo('vivaldi')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/plugins/vs_code.py 
new/opi-2.4.3/opi/plugins/vs_code.py
--- old/opi-2.4.2/opi/plugins/vs_code.py        2021-10-25 10:23:31.000000000 
+0200
+++ new/opi-2.4.3/opi/plugins/vs_code.py        2022-01-24 12:31:27.000000000 
+0100
@@ -12,6 +12,12 @@
                if not opi.ask_yes_or_no("Do you want to install VS Code from 
Microsoft repository?", 'y'):
                        return
 
+               option = opi.ask_for_option(options=[
+                       'code',
+                       'code-exploration',
+                       'code-insiders',
+               ])
+
                opi.add_repo(
                        filename = 'vscode',
                        name = 'Visual Studio Code',
@@ -19,5 +25,5 @@
                        gpgkey = 
'https://packages.microsoft.com/keys/microsoft.asc'
                )
 
-               opi.install_packages(['code'])
+               opi.install_packages([option])
                opi.ask_keep_repo('vscode')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi/version.py new/opi-2.4.3/opi/version.py
--- old/opi-2.4.2/opi/version.py        2021-10-25 10:23:31.000000000 +0200
+++ new/opi-2.4.3/opi/version.py        2022-01-24 12:31:27.000000000 +0100
@@ -1 +1 @@
-__version__ = '2.4.2'
+__version__ = '2.4.3'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/opi.changes new/opi-2.4.3/opi.changes
--- old/opi-2.4.2/opi.changes   1970-01-01 01:00:00.000000000 +0100
+++ new/opi-2.4.3/opi.changes   2022-01-24 12:31:27.000000000 +0100
@@ -0,0 +1,296 @@
+-------------------------------------------------------------------
+Mon Jan 24 11:23:50 UTC 2022 - Dominik Heidler <dheid...@suse.de>
+
+- Version 2.4.3
+- Fix for tumbleweed based MicroOS
+
+-------------------------------------------------------------------
+
+- Version 2.4.2 - 2021-10-25
+
+## Changed
+
+- Switched to opensuse provided opi proxy
+
+-------------------------------------------------------------------
+
+- Version 2.4.1 - 2021-10-11
+
+## Changed
+
+- Don't expect output to be a tty
+
+-------------------------------------------------------------------
+
+- Version 2.4.0 - 2021-10-11
+
+## Added
+
+- Scroll results if they not fit on the screen
+- Plugin for atom editor
+
+-------------------------------------------------------------------
+
+# Version 2.3.0 - 2021-06-06
+
+### Changed
+
+- Fixed gpgcheck entry in `add_repo()`
+- Allowed using multiple query keywords that are combined using AND
+
+### Added
+
+- Plugin for sublime text
+- Plugin for yandex-disk
+
+-------------------------------------------------------------------
+
+- Version 2.2.0 - 2021-08-20
+
+### Added
+
+- Plugin for MEGA
+- Plugin for Edge Beta
+- Argument parser with option for reverse output order
+
+-------------------------------------------------------------------
+
+- Version 2.1.1 - 2021-08-10
+
+### Added
+
+- Plugin for Brave Browser [#60](https://github.com/openSUSE/opi/pull/60)
+
+-------------------------------------------------------------------
+
+- Version 2.1.0 - 2021-07-05
+
+### Added
+
+- Support for dnf backend [#58](https://github.com/openSUSE/opi/pull/58)
+
+### Changed
+
+- Deduplicated packman repo creation code
+
+-------------------------------------------------------------------
+
+- Version 2.0.0 - 2021-05-03
+
+### Added
+
+- [Automated tests](https://github.com/openSUSE/opi/actions)
+- Extensible Plugin interface for plugins (eg. [this 
one](https://github.com/openSUSE/opi/blob/master/opi/plugins/vivaldi.py))
+- Added plugins for chrome, dotnet, edge, teams, packman, plex, skype, slack, 
teamviewer, vivaldi, vscode, vscodium, zoom
+
+### Changed
+
+- Rewrote the complete tool in python3
+
+-------------------------------------------------------------------
+
+- Version 0.10.0 - 2021-01-17
+
+### Added
+
+- Microsoft Teams installer [#34](https://github.com/openSUSE/opi/pulls/34)
+- Warning for personal repository 
[#35](https://github.com/openSUSE/opi/pulls/35)
+
+-------------------------------------------------------------------
+
+- Version 0.9.0 - 2020-10-03
+
+### Added
+
+- Help (-h, --help) and version (-v, --version) option
+
+### Changed
+
+- Filter out -devel, -docs and -lang packages 
[#30](https://github.com/openSUSE/opi/pulls/30)
+- Don't show i586 packages on x86_64 system
+
+-------------------------------------------------------------------
+
+- Version 0.8.3 - 2020-07-25
+
+### Fixed
+
+- ffmpeg/libav packages due to Packman update
+
+-------------------------------------------------------------------
+
+- Version 0.8.2 - 2020-05-16
+
+### Fixed
+
+- Ghost process on XML parsing failure 
[#27](https://github.com/openSUSE/opi/pulls/27)
+
+-------------------------------------------------------------------
+
+- Version 0.8.1 - 2020-04-03
+
+### Fixed
+
+- OBS limit error when searching php, test, etc.
+
+-------------------------------------------------------------------
+
+- Version 0.8.0
+
+### Changed
+
+- Type number `0` to exit [#26](https://github.com/openSUSE/opi/pulls/26)
+
+-------------------------------------------------------------------
+
+- Version 0.7.1
+
+### Fixed
+
+- Missing `use File::Temp;` [#24](https://github.com/openSUSE/opi/issues/24)
+
+-------------------------------------------------------------------
+
+- Version 0.7.0
+
+### Changed
+
+- Force repo URL to HTTPS [#22](https://github.com/openSUSE/opi/issues/22)
+
+### Fixed
+
+- Ctrl + C handling of spinner
+
+-------------------------------------------------------------------
+
+- Version 0.6.0
+
+### Added
+
+- Search spinner [#21](https://github.com/openSUSE/opi/issues/21)
+
+### Fixed
+
+- Packman repo doesn't have *.repo file 
[#19](https://github.com/openSUSE/opi/issues/19)
+- Long version numbers are cutted 
[#17](https://github.com/openSUSE/opi/issues/17)
+
+-------------------------------------------------------------------
+
+- Version 0.5.2
+
+### Fixed
+
+- Trim "NAME" and "VERSION" string 
[#13](https://github.com/openSUSE/opi/issues/13)
+
+-------------------------------------------------------------------
+
+- Version 0.5.1
+
+### Fixed
+
+- Fix dependency not found issue 
[#11](https://github.com/openSUSE/opi/issues/11)
+
+-------------------------------------------------------------------
+
+- Version 0.5.0
+
+### Added
+
+- API proxy server to prevent hard-coded passwords in the script 
[#4](https://github.com/openSUSE/opi/issues/4)
+
+-------------------------------------------------------------------
+
+- Version 0.4.0
+
+### Added
+
+- PMBS (Packman Build Service) support 
[#5](https://github.com/openSUSE/opi/issues/5)
+
+-------------------------------------------------------------------
+
+- Version 0.3.2
+
+### Fixed
+
+- `opi opi` cannot find `opi` [#9](https://github.com/openSUSE/opi/issues/9)
+
+-------------------------------------------------------------------
+
+- Version 0.3.1
+
+### Fixed
+
+- Remove quotes from version number. So Leap and SLE can search packages.
+
+-------------------------------------------------------------------
+
+- Version 0.3.0
+
+### Added
+
+- Support SLE [#8](https://github.com/openSUSE/opi/issues/8)
+
+### Changed
+
+- Better print column alignment
+
+-------------------------------------------------------------------
+
+- Version 0.2.0
+
+### Added
+
+- Install Packman Codecs with `opi packman` or `opi codecs` 
[#6](https://github.com/openSUSE/opi/issues/6)
+- Install Skype with `opi skype` [#6](https://github.com/openSUSE/opi/issues/6)
+- Install VS Code with `opi vs code` 
[#6](https://github.com/openSUSE/opi/issues/6)
+
+-------------------------------------------------------------------
+
+- Version 0.1.2
+
+### Fixed
+
+- Fixed lost of "noarch" packages 
[#3](https://github.com/openSUSE/opi/issues/3)
+- Be able to search with dashes in keywords 
[#2](https://github.com/openSUSE/opi/issues/2)
+
+-------------------------------------------------------------------
+
+- Version 0.1.1
+
+### Fixed
+
+- Removed XML dump which may cause problems.
+
+-------------------------------------------------------------------
+
+- Version 0.1.0
+
+### Added
+
+- Search packages from OBS
+- List properly sorted search result
+- Use different colors for official, experimental and personal projects
+- Choose package and install
+- Keep or remove repository after installation
+
+[Unreleased]: https://github.com/openSUSE/opi/compare/v0.10.0...HEAD
+[0.10.0]: https://github.com/openSUSE/opi/compare/v0.9.0...v0.10.0
+[0.9.0]: https://github.com/openSUSE/opi/compare/v0.8.3...v0.9.0
+[0.8.3]: https://github.com/openSUSE/opi/compare/v0.8.2...v0.8.3
+[0.8.2]: https://github.com/openSUSE/opi/compare/v0.8.1...v0.8.2
+[0.8.1]: https://github.com/openSUSE/opi/compare/v0.8.0...v0.8.1
+[0.8.0]: https://github.com/openSUSE/opi/compare/v0.7.1...v0.8.0
+[0.7.1]: https://github.com/openSUSE/opi/compare/v0.7.0...v0.7.1
+[0.7.0]: https://github.com/openSUSE/opi/compare/v0.6.0...v0.7.0
+[0.6.0]: https://github.com/openSUSE/opi/compare/v0.5.2...v0.6.0
+[0.5.2]: https://github.com/openSUSE/opi/compare/v0.5.1...v0.5.2
+[0.5.1]: https://github.com/openSUSE/opi/compare/v0.5.0...v0.5.1
+[0.5.0]: https://github.com/openSUSE/opi/compare/v0.4.0...v0.5.0
+[0.4.0]: https://github.com/openSUSE/opi/compare/v0.3.2...v0.4.0
+[0.3.2]: https://github.com/openSUSE/opi/compare/v0.3.1...v0.3.2
+[0.3.1]: https://github.com/openSUSE/opi/compare/v0.3.0...v0.3.1
+[0.3.0]: https://github.com/openSUSE/opi/compare/v0.2.0...v0.3.0
+[0.2.0]: https://github.com/openSUSE/opi/compare/v0.1.2...v0.2.0
+[0.1.2]: https://github.com/openSUSE/opi/compare/v0.1.1...v0.1.2
+[0.1.1]: https://github.com/openSUSE/opi/compare/v0.1.0...v0.1.1
+[0.1.0]: https://github.com/openSUSE/opi/releases/tag/v0.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opi-2.4.2/test/03_install_using_plugin.py 
new/opi-2.4.3/test/03_install_using_plugin.py
--- old/opi-2.4.2/test/03_install_using_plugin.py       2021-10-25 
10:23:31.000000000 +0200
+++ new/opi-2.4.3/test/03_install_using_plugin.py       2022-01-24 
12:31:27.000000000 +0100
@@ -4,7 +4,7 @@
 import pexpect
 import subprocess
 
-c = pexpect.spawn('./bin/opi vivaldi', logfile=sys.stdout.buffer, echo=False)
+c = pexpect.spawn('./bin/opi yandex-disk', logfile=sys.stdout.buffer, 
echo=False)
 
 c.expect("Do you want to install")
 c.sendline('y')
@@ -12,7 +12,7 @@
 c.expect("Continue")
 c.sendline('y')
 
-c.expect("Do you want to keep", timeout=800)
+c.expect("Do you want to keep", timeout=500)
 c.sendline('y')
 
 c.interact()
@@ -20,5 +20,5 @@
 c.close()
 assert c.exitstatus == 0, "Exit code: %i" % c.exitstatus
 
-subprocess.check_call(['rpm', '-qi', 'vivaldi-stable'])
-subprocess.check_call('zypper lr | grep vivaldi', shell=True)
+subprocess.check_call(['rpm', '-qi', 'yandex-disk'])
+subprocess.check_call('zypper lr | grep yandex-disk', shell=True)

Reply via email to