Hello community, here is the log from the commit of package googler for openSUSE:Factory checked in at 2019-12-02 11:30:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/googler (Old) and /work/SRC/openSUSE:Factory/.googler.new.4691 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "googler" Mon Dec 2 11:30:53 2019 rev:5 rq:752545 version:4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/googler/googler.changes 2019-06-03 18:50:59.580524342 +0200 +++ /work/SRC/openSUSE:Factory/.googler.new.4691/googler.changes 2019-12-02 11:35:00.126455498 +0100 @@ -1,0 +2,8 @@ +Wed Nov 27 02:31:48 UTC 2019 - Dilawar Singh <[email protected]> + +- Update to version 4.0 + * Switch to modern UA and fix parser to handle new result format + - fixes #306 Googler no results on v3.9 (due to google's recent layout changes) + * Text-wrapping + +------------------------------------------------------------------- Old: ---- v3.9.tar.gz New: ---- v4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ googler.spec ++++++ --- /var/tmp/diff_new_pack.bKeHtA/_old 2019-12-02 11:35:01.834454652 +0100 +++ /var/tmp/diff_new_pack.bKeHtA/_new 2019-12-02 11:35:01.854454642 +0100 @@ -17,7 +17,7 @@ Name: googler -Version: 3.9 +Version: 4.0 Release: 0 Summary: Google Search, Google Site Search, Google News from the terminal License: GPL-3.0-or-later @@ -56,7 +56,8 @@ %files %defattr(-,root,root) -%doc LICENSE CHANGELOG README.md +%license LICENSE +%doc CHANGELOG README.md %{_bindir}/googler %{_mandir}/man1/googler.* %{_sysconfdir}/bash_completion.d/ ++++++ v3.9.tar.gz -> v4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/.circleci/config.yml new/googler-4.0/.circleci/config.yml --- old/googler-3.9/.circleci/config.yml 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/.circleci/config.yml 2019-11-26 22:49:05.000000000 +0100 @@ -11,11 +11,6 @@ - run: ./tests/test --ci jobs: - py34: - docker: - - image: python:3.4-slim - <<: *test-template - py35: docker: - image: python:3.5-slim @@ -31,6 +26,11 @@ - image: python:3.7-slim <<: *test-template + py38: + docker: + - image: python:3.8-slim + <<: *test-template + package-and-publish: machine: true working_directory: ~/googler @@ -42,7 +42,7 @@ # Use latest installed python3 from pyenv export PYENV_VERSION="$(pyenv versions | grep -Po '\b3\.\d+\.\d+' | tail -1)" pip install packagecore - packagecore -o ./dist/ ${CIRCLE_TAG#v} + packagecore -c tests/packagecore/packagecore.yaml -o ./dist/ ${CIRCLE_TAG#v} - run: name: "publish to GitHub" command: | @@ -54,10 +54,10 @@ test: jobs: &all-tests - - py34 - py35 - py36 - py37 + - py38 weekly: triggers: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/.github/FUNDING.yml new/googler-4.0/.github/FUNDING.yml --- old/googler-3.9/.github/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/googler-4.0/.github/FUNDING.yml 2019-11-26 22:49:05.000000000 +0100 @@ -0,0 +1 @@ +custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RMLTQ76JSXJ4Q diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/.github/lock.yml new/googler-4.0/.github/lock.yml --- old/googler-3.9/.github/lock.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/googler-4.0/.github/lock.yml 2019-11-26 22:49:05.000000000 +0100 @@ -0,0 +1,3 @@ +daysUntilLock: 60 +lockComment: false +setLockReason: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/CHANGELOG new/googler-4.0/CHANGELOG --- old/googler-3.9/CHANGELOG 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/CHANGELOG 2019-11-26 22:49:05.000000000 +0100 @@ -1,3 +1,12 @@ +googler 4.0 +2019-11-27 + +What's in? +- Switch to modern UA and fix parser to handle new result format +- Text-wrapping + +------------------------------------------------------------------------------- + googler 3.9 2019-05-30 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/README.md new/googler-4.0/README.md --- old/googler-3.9/README.md 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/README.md 2019-11-26 22:49:05.000000000 +0100 @@ -29,7 +29,7 @@ More fun stuff you can try with `googler`: - [googler on the iPad](https://github.com/jarun/googler/wiki/googler-on-the-iPad) -- [Directly print content of results to terminal](https://github.com/jarun/googler/wiki/Directly-print-content-of-results-to-terminal) +- [Print content of results to terminal or listen to it](https://github.com/jarun/googler/wiki/Print-content-of-results-to-terminal-or-listen-to-it) - [Terminal Reading Mode or Reader View](https://github.com/jarun/googler/wiki/Terminal-Reading-Mode-or-Reader-View) - [Stream YouTube videos on desktop](https://github.com/jarun/googler/wiki/Stream-YouTube-videos-on-desktop) - [Search error on StackOverflow from terminal](https://github.com/jarun/googler/wiki/Search-error-on-StackOverflow-from-terminal) @@ -86,7 +86,7 @@ #### Dependencies -`googler` requires Python 3.4 or later. Only the latest patch release of each minor version is supported. +`googler` requires Python 3.5 or later. Only the latest patch release of each minor version is supported. To copy url to clipboard at the omniprompt, `googler` looks for `xsel` or `xclip` or `termux-clipboard-set` (in the same order) on Linux, `pbcopy` (default installed) on macOS and `clip` (default installed) on Windows. It also supports GNU Screen and tmux copy-paste buffers in the absence of X11. @@ -116,7 +116,7 @@ #### Release packages -Packages for Arch Linux, CentOS, Debian, Fedora, openSUSE Leap and Ubuntu are available with the [latest stable release](https://github.com/jarun/googler/releases/latest). +Packages for Arch Linux, CentOS, Debian, Fedora, openSUSE and Ubuntu are available with the [latest stable release](https://github.com/jarun/googler/releases/latest). #### From source @@ -144,7 +144,7 @@ To install the latest stable version, run - $ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v3.9/googler && sudo chmod +x /usr/local/bin/googler + $ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v4.0/googler && sudo chmod +x /usr/local/bin/googler You could then let googler upgrade itself by running diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/googler new/googler-4.0/googler --- old/googler-3.9/googler 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/googler 2019-11-26 22:49:05.000000000 +0100 @@ -55,6 +55,21 @@ except (ImportError, Exception): pass +from typing import ( + Any, + Dict, + Generator, + Iterable, + Iterator, + List, + Match, + Optional, + Sequence, + Tuple, + Union, + cast, +) + # Basic setup logging.basicConfig(format='[%(levelname)s] %(message)s') @@ -74,7 +89,7 @@ # Constants -_VERSION_ = '3.9' +_VERSION_ = '4.0' COLORMAP = {k: '\x1b[%sm' % v for k, v in { 'a': '30', 'b': '31', 'c': '32', 'd': '33', @@ -88,7 +103,7 @@ 'x': '0', 'X': '1', 'y': '7', 'Y': '7;1', }.items()} -USER_AGENT = 'googler/%s (like MSIE)' % _VERSION_ +USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' text_browsers = ['elinks', 'links', 'lynx', 'w3m', 'www-browser'] @@ -152,6 +167,98 @@ monkeypatch_textwrap_for_cjk() +CoordinateType = Tuple[int, int] + + +class TrackedTextwrap: + """ + Implements a text wrapper that tracks the position of each source + character, and can correctly insert zero-width sequences at given + offsets of the source text. + + Wrapping result should be the same as that from PSL textwrap.wrap + with default settings except expand_tabs=False. + """ + + def __init__(self, text: str, width: int): + self._original = text + + # Do the job of replace_whitespace first so that we can easily + # match text to wrapped lines later. Note that this operation + # does not change text length or offsets. + whitespace = "\t\n\v\f\r " + whitespace_trans = str.maketrans(whitespace, " " * len(whitespace)) + text = text.translate(whitespace_trans) + + self._lines = textwrap.wrap( + text, width, expand_tabs=False, replace_whitespace=False + ) + + # self._coords track the (row, column) coordinate of each source + # character in the result text. It is indexed by offset in + # source text. + self._coords = [] # type: List[CoordinateType] + offset = 0 + try: + if not self._lines: + # Source text only has whitespaces. We add an empty line + # in order to produce meaningful coordinates. + self._lines = [""] + for row, line in enumerate(self._lines): + assert text[offset : offset + len(line)] == line + col = 0 + for _ in line: + self._coords.append((row, col)) + offset += 1 + col += 1 + # All subsequent dropped whitespaces map to the last, imaginary column + # (the EOL character if you wish) of the current line. + while offset < len(text) and text[offset] == " ": + self._coords.append((row, col)) + offset += 1 + # One past the final character (think of it as EOF) should + # be treated as a valid offset. + self._coords.append((row, col)) + except AssertionError: + raise RuntimeError( + "TrackedTextwrap: the impossible happened at offset {} of text {!r}".format( + offset, self._original + ) + ) + + # seq should be a zero-width sequence, e.g., an ANSI escape sequence. + # May raise IndexError if offset is out of bounds. + def insert_zero_width_sequence(self, seq: str, offset: int) -> None: + row, col = self._coords[offset] + line = self._lines[row] + self._lines[row] = line[:col] + seq + line[col:] + + # Shift coordinates of all characters after the given character + # on the same line. + shift = len(seq) + offset += 1 + while offset < len(self._coords) and self._coords[offset][0] == row: + _, col = self._coords[offset] + self._coords[offset] = (row, col + shift) + offset += 1 + + @property + def original(self) -> str: + return self._original + + @property + def lines(self) -> List[str]: + return self._lines + + @property + def wrapped(self) -> str: + return "\n".join(self._lines) + + # May raise IndexError if offset is out of bounds. + def get_coordinate(self, offset: int) -> CoordinateType: + return self._coords[offset] + + ### begin dim (DOM implementation with CSS support) ### ### https://github.com/zmwangx/dim/blob/master/dim.py ### @@ -162,34 +269,6 @@ from enum import Enum from html.parser import HTMLParser -try: - from typing import ( - Any, - Dict, - Generator, - Iterable, - Iterator, - List, - Match, - Optional, - Tuple, - Union, - cast, - ) -except ImportError: # pragma: no cover - # Python 3.4 without external typing module - - class _TypeStub: - def __getitem__(self, _): # type: ignore - return None - - Any = None - Dict = Generator = Iterable = Iterator = List = Match = _TypeStub() # type: ignore - Optional = Tuple = Union = _TypeStub() # type: ignore - - def cast(typ, val): # type: ignore - return val - SelectorGroupLike = Union[str, "SelectorGroup", "Selector"] @@ -437,16 +516,16 @@ def __init__( self, tag: str, - attrs: Iterable[Tuple[str, str]], + attrs: Iterable[Tuple[str, Optional[str]]], *, parent: Optional["Node"] = None, - children: Optional[List["Node"]] = None + children: Optional[Sequence["Node"]] = None ) -> None: Node.__init__(self) self.tag = tag.lower() # type: str - self.attrs = OrderedDict((attr.lower(), val) for attr, val in attrs) + self.attrs = OrderedDict((attr.lower(), val or "") for attr, val in attrs) self.parent = parent - self.children = children or [] + self.children = list(children or []) def __repr__(self) -> str: s = "<" + self.tag @@ -582,7 +661,9 @@ super().__init__(convert_charrefs=True) self._stack = [] # type: List[Node] - def handle_starttag(self, tag: str, attrs: List[Tuple[str, str]]) -> None: + def handle_starttag( + self, tag: str, attrs: Sequence[Tuple[str, Optional[str]]] + ) -> None: node = ElementNode(tag, attrs) node._partial = True self._stack.append(node) @@ -614,7 +695,9 @@ # handle_starttag only, whereas the latter triggers # handle_startendtag (which by default triggers both handle_starttag # and handle_endtag). See https://www.bugs.python.org/issue25258. - def handle_startendtag(self, tag: str, attrs: List[Tuple[str, str]]) -> None: + def handle_startendtag( + self, tag: str, attrs: Sequence[Tuple[str, Optional[str]]] + ) -> None: self.handle_starttag(tag, attrs) def handle_data(self, text: str) -> None: @@ -848,16 +931,16 @@ self, *, tag: Optional[str] = None, - classes: Optional[List[str]] = None, + classes: Optional[Sequence[str]] = None, id: Optional[str] = None, - attrs: Optional[List["AttributeSelector"]] = None, + attrs: Optional[Sequence["AttributeSelector"]] = None, combinator: Optional["Combinator"] = None, previous: Optional["Selector"] = None ) -> None: self.tag = tag.lower() if tag else None - self.classes = classes or [] + self.classes = list(classes or []) self.id = id - self.attrs = attrs or [] + self.attrs = list(attrs or []) self.combinator = combinator self.previous = previous @@ -2114,21 +2197,29 @@ # Skip smart cards. continue try: - h3 = div_g.select('h3.r') - a = h3.select('a') - title = a.text - mime = div_g.select('.mime') - if mime: - title = mime.text + ' ' + title - url = self.unwrap_link(a.attr('href')) + h3 = div_g.select('div.r h3') + if h3: + title = h3.text + url = self.unwrap_link(h3.parent.attr('href')) + else: + h3 = div_g.select('h3.r') + a = h3.select('a') + title = a.text + mime = div_g.select('.mime') + if mime: + title = mime.text + ' ' + title + url = self.unwrap_link(a.attr('href')) matched_keywords = [] abstract = '' for childnode in div_g.select('.st').children: + if 'f' in childnode.classes: + # .f is handled as metadata instead. + continue if childnode.tag == 'b' and childnode.text != '...': - matched_keywords.append({'phrase': childnode.text, 'offset': len(abstract)}) + matched_keywords.append({'phrase': childnode.text, 'offset': len(abstract)}) abstract = abstract + childnode.text.replace('\n', '') try: - metadata = div_g.select('.slp').text + metadata = div_g.select('.f').text metadata = metadata.replace('\u200e', '').replace(' - ', ', ').strip() except AttributeError: metadata = None @@ -2152,10 +2243,12 @@ # Search instead for ... spell_orig = tree.select("span.spell_orig") if spell_orig: - self.autocorrected = True - self.showing_results_for = next( + showing_results_for_link = next( filter(lambda el: el.tag == "a", spell_orig.previous_siblings()), None - ).text + ) + if showing_results_for_link: + self.autocorrected = True + self.showing_results_for = showing_results_for_link.text # No results found for ... # Results for ...: @@ -2171,14 +2264,14 @@ self.filtered = tree.select('p#ofr') is not None # Unwraps /url?q=http://...&sa=... - # May raise ValueError. + # TODO: don't unwrap if URL isn't in this form. @staticmethod def unwrap_link(link): qs = urllib.parse.urlparse(link).query try: url = urllib.parse.parse_qs(qs)['q'][0] except KeyError: - raise ValueError(link) + return link else: if "://" in url: return url @@ -2262,7 +2355,7 @@ self._urltable[fullindex] = sitelink.url subindex = chr(ord(subindex) + 1) - def _print_title_and_url(self, index, title, url, indent=3, pre=0): + def _print_title_and_url(self, index, title, url, indent=0): colors = self.colors if not self.urlexpand: @@ -2270,20 +2363,20 @@ if colors: # Adjust index to print result index clearly - print(" %s%s%-*s%s" % (' ' * pre, colors.index, indent, index + '.', colors.reset), end='') + print(" %s%s%-3s%s" % (' ' * indent, colors.index, index + '.', colors.reset), end='') if not self.urlexpand: print(' ' + colors.title + title + colors.reset + ' ' + colors.url + url + colors.reset) else: print(' ' + colors.title + title + colors.reset) - print(' ' * (indent + 2 + pre) + colors.url + url + colors.reset) + print(' ' * (indent + 5) + colors.url + url + colors.reset) else: if self.urlexpand: - print(' %s%-*s %s' % (' ' * pre, indent, index + '.', title)) - print(' %s%s' % (' ' * (indent + 1 + pre), url)) + print(' %s%-3s %s' % (' ' * indent, index + '.', title)) + print(' %s%s' % (' ' * (indent + 4), url)) else: - print(' %s%-*s %s %s' % (' ' * pre, indent, index + '.', title, url)) + print(' %s%-3s %s %s' % (' ' * indent, index + '.', title, url)) - def _print_metadata_and_abstract(self, abstract, metadata=None, matches=None, indent=5, pre=0): + def _print_metadata_and_abstract(self, abstract, metadata=None, matches=None, indent=0): colors = self.colors try: columns, _ = os.get_terminal_size() @@ -2292,31 +2385,27 @@ if metadata: if colors: - print(' ' * (indent + pre) + colors.metadata + metadata + colors.reset) + print(' ' * (indent + 5) + colors.metadata + metadata + colors.reset) else: - print(' ' * (indent + pre) + metadata) + print(' ' * (indent + 5) + metadata) + + fillwidth = (columns - (indent + 6)) if columns > indent + 6 else len(abstract) + wrapped_abstract = TrackedTextwrap(abstract, fillwidth) + if colors: + # Highlight matches. + for match in matches or []: + offset = match['offset'] + span = len(match['phrase']) + wrapped_abstract.insert_zero_width_sequence('\x1b[1m', offset) + wrapped_abstract.insert_zero_width_sequence('\x1b[0m', offset + span) if colors: - # Start from the last match, as inserting the bold characters changes the offsets. - for match in reversed(matches or []): - abstract = ( - abstract[: match['offset']] - + '\033[1m' - + match['phrase'] - + '\033[0m' - + abstract[match['offset'] + len(match['phrase']) :] - ) print(colors.abstract, end='') - if columns > indent + 1 + pre: - # Try to fill to columns - fillwidth = columns - indent - 1 - for line in textwrap.wrap(abstract.replace('\n', ''), width=fillwidth): - print('%s%s' % (' ' * (indent + pre), line)) - print('') - else: - print('%s%s\n' % (' ' * pre, abstract.replace('\n', ' '))) + for line in wrapped_abstract.lines: + print('%s%s' % (' ' * (indent + 5), line)) if colors: print(colors.reset, end='') + print('') def print(self): """Print the result entry.""" @@ -2324,8 +2413,8 @@ self._print_metadata_and_abstract(self.abstract, metadata=self.metadata, matches=self.matches) for sitelink in self.sitelinks: - self._print_title_and_url(sitelink.index, sitelink.title, sitelink.url, pre=4) - self._print_metadata_and_abstract(sitelink.abstract, pre=4) + self._print_title_and_url(sitelink.index, sitelink.title, sitelink.url, indent=4) + self._print_metadata_and_abstract(sitelink.abstract, indent=4) def jsonizable_object(self): """Return a JSON-serializable dict representing the result entry.""" @@ -2445,6 +2534,8 @@ self.promptcolor = True if os.getenv('DISABLE_PROMPT_COLOR') is None else False + self.no_results_instructions_shown = False + @property def options(self): """Current options.""" @@ -2492,6 +2583,13 @@ for r in self.results: self._urltable.update(r.urltable()) + def warn_no_results(self): + printerr('No results.') + if not self.no_results_instructions_shown: + printerr('If you believe this is a bug, please review ' + 'https://git.io/googler-no-results before submitting a bug report.') + self.no_results_instructions_shown = True + @require_keywords def display_results(self, prelude='\n', json_output=False): """Display results stored in ``self.results``. @@ -2509,7 +2607,7 @@ else: # Regular output if not self.results: - print('No results.', file=sys.stderr) + self.warn_no_results() else: sys.stderr.write(prelude) for r in self.results: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/googler.1 new/googler-4.0/googler.1 --- old/googler-3.9/googler.1 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/googler.1 2019-11-26 22:49:05.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "GOOGLER" "1" "30 May 2019" "Version 3.9" "User Commands" +.TH "GOOGLER" "1" "27 Nov 2019" "Version 4.0" "User Commands" .SH NAME googler \- Google from the command-line .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/packagecore.yaml new/googler-4.0/packagecore.yaml --- old/googler-3.9/packagecore.yaml 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/packagecore.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,93 +0,0 @@ -name: googler -maintainer: Arun Prakash Jana <[email protected]> -license: GPLv3 -summary: Google from the command-line. -homepage: https://github.com/jarun/googler -commands: - install: - - make PREFIX="/usr" install DESTDIR="${BP_DESTDIR}" -packages: - archlinux: - builddeps: - - make - deps: - - python - container: "archlinux/base" - centos7.4: - builddeps: - - make - deps: - - python - commands: - pre: - - yum install epel-release - centos7.5: - builddeps: - - make - deps: - - python - centos7.6: - builddeps: - - make - deps: - - python - debian8: - builddeps: - - make - deps: - - python3 - debian9: - builddeps: - - make - deps: - - python3 - fedora25: - builddeps: - - make - deps: - - python3 - fedora26: - builddeps: - - make - deps: - - python3 - fedora27: - builddeps: - - make - deps: - - python3 - fedora28: - builddeps: - - make - deps: - - python3 - fedora29: - builddeps: - - make - deps: - - python3 - fedora30: - builddeps: - - make - deps: - - python3 - opensuse42.3: - builddeps: - - make - deps: - - python3 - ubuntu14.04: - builddeps: - - make - deps: - - python3 - ubuntu16.04: - builddeps: - - make - deps: - - python3 - ubuntu18.04: - builddeps: - - make - deps: - - python3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/tests/packagecore/packagecore.yaml new/googler-4.0/tests/packagecore/packagecore.yaml --- old/googler-3.9/tests/packagecore/packagecore.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/googler-4.0/tests/packagecore/packagecore.yaml 2019-11-26 22:49:05.000000000 +0100 @@ -0,0 +1,100 @@ +name: googler +maintainer: Arun Prakash Jana <[email protected]> +license: GPLv3 +summary: Google from the command-line. +homepage: https://github.com/jarun/googler +commands: + install: + - make PREFIX="/usr" install DESTDIR="${BP_DESTDIR}" +packages: + archlinux: + builddeps: + - make + deps: + - python + container: "archlinux/base" + centos7.5: + builddeps: + - make + deps: + - python + centos7.6: + builddeps: + - make + deps: + - python + debian8: + builddeps: + - make + deps: + - python3 + debian9: + builddeps: + - make + deps: + - python3 + debian10: + builddeps: + - make + deps: + - python3 + fedora25: + builddeps: + - make + deps: + - python3 + fedora26: + builddeps: + - make + deps: + - python3 + fedora27: + builddeps: + - make + deps: + - python3 + fedora28: + builddeps: + - make + deps: + - python3 + fedora29: + builddeps: + - make + deps: + - python3 + fedora30: + builddeps: + - make + deps: + - python3 + fedora31: + builddeps: + - make + deps: + - python3 + opensuse42.3: + builddeps: + - make + deps: + - python3 + opensuse15.0: + builddeps: + - make + deps: + - python3 + ubuntu14.04: + builddeps: + - make + deps: + - python3 + ubuntu16.04: + builddeps: + - make + deps: + - python3 + ubuntu18.04: + builddeps: + - make + deps: + - python3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.9/tests/test new/googler-4.0/tests/test --- old/googler-3.9/tests/test 2019-05-30 05:07:26.000000000 +0200 +++ new/googler-4.0/tests/test 2019-11-26 22:49:05.000000000 +0100 @@ -105,7 +105,7 @@ printf 'failed with status %d.\033[0m\n' $last_status >&2 exitcode=1 - (( rerun )) && { googler --noprompt -d "$@"; printf '\n\033[33m[Exit status] %d\033[0m\n' $?; } || : + (( rerun )) && { $googler --noprompt -d "$@"; printf '\n\033[33m[Exit status] %d\033[0m\n' $?; } || : } declare -g quiet
