Hello community,
here is the log from the commit of package googler for openSUSE:Factory checked in at 2019-06-03 18:50:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/googler (Old)
and /work/SRC/openSUSE:Factory/.googler.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "googler"
Mon Jun 3 18:50:58 2019 rev:4 rq:706895 version:3.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/googler/googler.changes 2019-04-01 12:37:28.865889104 +0200
+++ /work/SRC/openSUSE:Factory/.googler.new.5148/googler.changes 2019-06-03 18:50:59.580524342 +0200
@@ -1,0 +2,11 @@
+Thu May 30 03:50:45 UTC 2019 - Dilawar Singh
+
+- Update to version 3.9
+ * fix issue - googler showing "No results."
+ * show matched keywords in bold in result abstracts
+ * option --colorize for more control on colors
+ * better support for colors on Windows
+ * switch to CircleCI from Travis
+ * option --noua is deprecated (noop) and will be removed in future
+
+-------------------------------------------------------------------
Old:
----
v3.8.tar.gz
New:
----
v3.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ googler.spec ++++++
--- /var/tmp/diff_new_pack.bi0sX3/_old 2019-06-03 18:51:00.376524069 +0200
+++ /var/tmp/diff_new_pack.bi0sX3/_new 2019-06-03 18:51:00.380524068 +0200
@@ -1,7 +1,7 @@
#
# spec file for package googler
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,15 +12,15 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: googler
-Version: 3.8
+Version: 3.9
Release: 0
Summary: Google Search, Google Site Search, Google News from the terminal
-License: GPL-3.0+
+License: GPL-3.0-or-later
Group: Productivity/Networking/Web/Utilities
Url: https://github.com/jarun/googler
Source: https://github.com/jarun/googler/archive/v%{version}.tar.gz
++++++ v3.8.tar.gz -> v3.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/.circleci/config.yml new/googler-3.9/.circleci/config.yml
--- old/googler-3.8/.circleci/config.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/googler-3.9/.circleci/config.yml 2019-05-30 05:07:26.000000000 +0200
@@ -0,0 +1,79 @@
+version: 2
+
+test-template: &test-template
+ working_directory: ~/googler
+ environment:
+ NUM_TEST_ITERATIONS: 30
+ SLEEP_DURATION: 3
+ steps:
+ - run: apt update && apt install -y --no-install-recommends git wamerican
+ - checkout
+ - run: ./tests/test --ci
+
+jobs:
+ py34:
+ docker:
+ - image: python:3.4-slim
+ <<: *test-template
+
+ py35:
+ docker:
+ - image: python:3.5-slim
+ <<: *test-template
+
+ py36:
+ docker:
+ - image: python:3.6-slim
+ <<: *test-template
+
+ py37:
+ docker:
+ - image: python:3.7-slim
+ <<: *test-template
+
+ package-and-publish:
+ machine: true
+ working_directory: ~/googler
+ steps:
+ - checkout
+ - run:
+ name: "package with packagecore"
+ command: |
+ # 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}
+ - run:
+ name: "publish to GitHub"
+ command: |
+ go get github.com/tcnksm/ghr
+ ghr -t ${GITHUB_API_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -replace ${CIRCLE_TAG} ./dist/
+
+workflows:
+ version: 2
+
+ test:
+ jobs: &all-tests
+ - py34
+ - py35
+ - py36
+ - py37
+
+ weekly:
+ triggers:
+ - schedule:
+ cron: "0 0 * * 6"
+ filters:
+ branches:
+ only:
+ - master
+ jobs: *all-tests
+
+ publish-github-release:
+ jobs:
+ - package-and-publish:
+ filters:
+ tags:
+ only: /^v.*/
+ branches:
+ ignore: /.*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/.travis.yml new/googler-3.9/.travis.yml
--- old/googler-3.8/.travis.yml 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-language: python
-python:
- - "3.4"
- - "3.5"
- - "3.6"
-sudo: required
-services:
- - docker
-dist: trusty
-before_install:
- - "pip install --upgrade setuptools"
- - "pip install --upgrade pip"
-script:
- - ./tests/ci-test-wrapper --watch .travis.yml
-before_deploy:
- - sudo apt-get update -qy
- - sudo apt-get install -qy python3 python3-pip
- - python3 -m pip install packagecore
- - packagecore -o dist/ "${TRAVIS_TAG#v}"
-deploy:
- provider: releases
- api_key:
- secure: g00YmDCb9gszABGJfzTyWeSy6zvvHCRI+vVjvJV7ubgs7L3JUeXfIfLeHZ4fUCX6RjhsOMwgQIIJVVtK5kgUI9YkBRJWdVo7jmJRefkxwTu2SF5SwDjYumiE6mqQlGCfo7OcV0/a/T5ipt5JyBUtY7DIMB2/wyz3jLPCvx4/aQo6COw0tKzaXgiXm0eJz6biEkc3QwGkFUNJFKgmvuvi+FYBJU21fD4cto8ck9i/0IUjsGxbExSpMKbe8bKj3BVh4dyMvZ6e+I/y2l2MM/RazssgFpiqabBm61CL4XCKxXzBsOgjhHSts7y+oWD3YnQqeaeugO5c6d8NPF5LSQk6VYEWYNwt3tdov/6zMMJohyN975AncjtwISzFzBZhAcXUeFxzs+6lfdNZc5lCE9gl+G9gUjWQ/0xyEFtT3m3kyjLlofoqiLwGv/+liaFSSxUpQd2ZHu5OoRjHcCJlxDd+9ppFDjV267zaa4eVBut87PP0QamUWSHEQW4tIuWLujCgJOn+IAMJTppNJ06q5RShV3ilbwlL+SkDSRUS79bLn5ELEgFADTJtUZwLU33VsYgTJ2Ktauu27kvjGitVTR+MgRzc2MVY1Gm6wN8AIe1HQj9YV0ePFp656Q8W29UnuN3QAfPwi2o5SimkNTrtp3MtQhq2nCBB5WqDv5L+DEwj654=
- file_glob: true
- file:
- - dist/*
- skip_cleanup: true
- on:
- tags: true
- repo: jarun/googler
- python: "3.6"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/CHANGELOG new/googler-3.9/CHANGELOG
--- old/googler-3.8/CHANGELOG 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/CHANGELOG 2019-05-30 05:07:26.000000000 +0200
@@ -1,3 +1,16 @@
+googler 3.9
+2019-05-30
+
+What's in?
+- fix issue - `googler` showing "No results."
+- show matched keywords in bold in result abstracts
+- option `--colorize` for more control on colors
+- better support for colors on Windows
+- switch to CircleCI from Travis
+- option `--noua` is deprecated (noop) and will be removed in future
+
+-------------------------------------------------------------------------------
+
googler 3.8
2019-03-27
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/README.md new/googler-3.9/README.md
--- old/googler-3.8/README.md 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/README.md 2019-05-30 05:07:26.000000000 +0200
@@ -13,7 +13,7 @@
<p align="center">
<a href="https://repology.org/metapackage/googler"><img src="https://repology.org/badge/tiny-repos/googler.svg" alt="Availability"></a>
<a href="https://github.com/jarun/googler/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPLv3-yellow.svg?maxAge=2592000" alt="License" /></a>
-<a href="https://travis-ci.org/jarun/googler"><img src="https://travis-ci.org/jarun/googler.svg?branch=master" alt="Build Status" /></a>
+<a href="https://circleci.com/gh/jarun/workflows/googler"><img src="https://img.shields.io/circleci/project/github/jarun/googler.svg" alt="Build Status" /></a>
</p>
<p align="center">
@@ -104,7 +104,6 @@
- [Slackware](http://slackbuilds.org/repository/14.2/network/googler/) (`slackpkg install googler`)
- [Snap Store](https://snapcraft.io/googler) (`snap install googler`)
- [Ubuntu](https://packages.ubuntu.com/search?keywords=googler&searchon=names) (`apt-get install googler`)
-- [Ubuntu PPA](https://launchpad.net/~twodopeshaggy/+archive/ubuntu/jarun/) (`apt-get install googler`)
- [Void Linux](https://github.com/void-linux/void-packages/blob/master/srcpkgs/googler/temp...) (`xbps-install -S googler`)
##### Tips for packagers
@@ -145,7 +144,7 @@
To install the latest stable version, run
- $ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v3.8/googler && sudo chmod +x /usr/local/bin/googler
+ $ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v3.9/googler && sudo chmod +x /usr/local/bin/googler
You could then let googler upgrade itself by running
@@ -168,10 +167,11 @@
#### Cmdline options
```
-usage: googler [-h] [-s N] [-n N] [-N] [-c TLD] [-l LANG] [-x] [-C]
- [--colors COLORS] [-j] [-t dN] [-w SITE] [--unfilter]
- [-p PROXY] [--noua] [--notweak] [--json] [--url-handler UTIL]
- [--show-browser-logs] [--np] [-u] [--include-git] [-v] [-d]
+usage: googler [-h] [-s N] [-n N] [-N] [-c TLD] [-l LANG] [-x]
+ [--colorize [{auto,always,never}]] [-C] [--colors COLORS] [-j]
+ [-t dN] [-w SITE] [--unfilter] [-p PROXY] [--noua] [--notweak]
+ [--json] [--url-handler UTIL] [--show-browser-logs] [--np] [-u]
+ [--include-git] [-v] [-d]
[KEYWORD [KEYWORD ...]]
Google from the command-line.
@@ -188,7 +188,12 @@
e.g., 'in' for India
-l LANG, --lang LANG display in language LANG
-x, --exact disable automatic spelling correction
- -C, --nocolor disable color output
+ --colorize [{auto,always,never}]
+ whether to colorize output; defaults to 'auto', which
+ enables color when stdout is a tty device; using
+ --colorize without an argument is equivalent to
+ --colorize=always
+ -C, --nocolor equivalent to --colorize=never
--colors COLORS set output colors (see man page for details)
-j, --first, --lucky open the first result in web browser and exit
-t dN, --time dN time limit search [h5 (5 hrs), d5 (5 days), w5 (5
@@ -198,7 +203,7 @@
-p PROXY, --proxy PROXY
tunnel traffic through an HTTP proxy; PROXY is of the
form [http://][user:password@]proxyhost[:port]
- --noua disable user agent
+ --noua legacy option (no effect)
--notweak disable TCP optimizations and forced TLS 1.2
--json output in JSON format; implies --noprompt
--url-handler UTIL custom script or cli utility to open results
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/auto-completion/bash/googler-completion.bash new/googler-3.9/auto-completion/bash/googler-completion.bash
--- old/googler-3.8/auto-completion/bash/googler-completion.bash 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/auto-completion/bash/googler-completion.bash 2019-05-30 05:07:26.000000000 +0200
@@ -18,6 +18,7 @@
-c --tld
-l --lang
-x --exact
+ --colorize
-C --nocolor
--colors
-j --first --lucky
@@ -25,7 +26,6 @@
-w --site
--unfilter
-p --proxy
- --noua
--notweak
--json
--url-handler
@@ -41,6 +41,7 @@
-n --count
-c --tld
-l --lang
+ --colorize
--colors
-t --time
-w --site
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/auto-completion/fish/googler.fish new/googler-3.9/auto-completion/fish/googler.fish
--- old/googler-3.8/auto-completion/fish/googler.fish 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/auto-completion/fish/googler.fish 2019-05-30 05:07:26.000000000 +0200
@@ -20,6 +20,7 @@
complete -c googler -s c -l tld -r --description 'country-specific search with top-level domain'
complete -c googler -s l -l lang -r --description 'display in specified language'
complete -c googler -s x -l exact --description 'disable automatic spelling correction'
+complete -c googler -l colorize -r --description 'whether to colorize output (options: auto/always/never)'
complete -c googler -s C -l nocolor --description 'disable color output'
complete -c googler -l colors -r --description 'set output colors'
complete -c googler -s j -l first -l lucky --description 'open the first result in a web browser'
@@ -27,7 +28,6 @@
complete -c googler -s w -l site -r --description 'search a site using Google'
complete -c googler -l unfilter --description 'do not omit similar results'
complete -c googler -s p -l proxy -r --description 'proxy in HOST:PORT format'
-complete -c googler -l noua --description 'disable user agent'
complete -c googler -l notweak --description 'disable TCP optimizations, forced TLS 1.2'
complete -c googler -l json --description 'output in JSON format'
complete -c googler -l url-handler -r --description 'cli script or utility'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/auto-completion/zsh/_googler new/googler-3.9/auto-completion/zsh/_googler
--- old/googler-3.8/auto-completion/zsh/_googler 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/auto-completion/zsh/_googler 2019-05-30 05:07:26.000000000 +0200
@@ -41,6 +41,7 @@
'(-c --tld)'{-c,--tld}'[country-specific search with top-level domain]:top level domain without dot'
'(-l --lang)'{-l,--lang}'[display in specified language]:language code'
'(-x --exact)'{-x,--exact}'[disable automatic spelling correction]'
+ '(--colorize)--colorize[whether to colorize output]:auto/always/never'
'(-C --nocolor)'{-C,--nocolor}'[disable color output]'
'(--colors)--colors[set output colors]:six-letter string'
'(-j --first --lucky)'{-j,--first,--lucky}'[open the first result in a web browser]'
@@ -48,7 +49,6 @@
'(-w --site)'{-w,--site}'[search a site using Google]:domain'
'(--unfilter)--unfilter[do not omit similar results]'
'(-p --proxy)'{-p,--proxy}'[proxy in HOST:PORT format]:proxy details'
- '(--noua)--noua[disable user agent]'
'(--notweak)--notweak[disable TCP optimizations, forced TLS 1.2]'
'(--json)--json[output in JSON format; implies --exact and --noprompt]'
'(--url-handler)--url-handler[cli script or utility]:url opener'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/googler new/googler-3.9/googler
--- old/googler-3.8/googler 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/googler 2019-05-30 05:07:26.000000000 +0200
@@ -30,6 +30,7 @@
import locale
import logging
import os
+import platform
import shutil
import signal
import socket
@@ -73,7 +74,7 @@
# Constants
-_VERSION_ = '3.8'
+_VERSION_ = '3.9'
COLORMAP = {k: '\x1b[%sm' % v for k, v in {
'a': '30', 'b': '31', 'c': '32', 'd': '33',
@@ -87,8 +88,7 @@
'x': '0', 'X': '1', 'y': '7', 'Y': '7;1',
}.items()}
-USER_AGENT = ('googler/' + _VERSION_)
-ua = True # User Agent is enabled by default
+USER_AGENT = 'googler/%s (like MSIE)' % _VERSION_
text_browsers = ['elinks', 'links', 'lynx', 'w3m', 'www-browser']
@@ -1988,7 +1988,17 @@
if resp.status in {301, 302, 303, 307, 308}:
redirection_url = resp.getheader('location', '')
if 'sorry/IndexRedirect?' in redirection_url or 'sorry/index?' in redirection_url:
- raise GoogleConnectionError('Connection blocked due to unusual activity.')
+ msg = textwrap.dedent("""\
+ Connection blocked due to unusual activity.
+ THIS IS NOT A BUG, please do NOT report it as a bug unless you have specific
+ information that may lead to the development of a workaround.
+ You IP address is temporarily or permanently blocked by Google and requires
+ reCAPTCHA-solving to use the service, which googler is not capable of.
+ Possible causes include issuing too many queries in a short time frame, or
+ operating from a shared / low reputation IP with a history of abuse.
+ Please do NOT use googler for automated scraping.""")
+ msg = " ".join(msg.splitlines())
+ raise GoogleConnectionError(msg)
self._redirect(redirection_url)
resp = self._resp
redirect_counter += 1
@@ -2056,7 +2066,7 @@
self._conn.request('GET', url, None, {
'Accept': 'text/html',
'Accept-Encoding': 'gzip',
- 'User-Agent': USER_AGENT if ua else '',
+ 'User-Agent': USER_AGENT,
'Cookie': self.cookie,
'Connection': 'keep-alive',
'DNT': '1',
@@ -2111,7 +2121,12 @@
if mime:
title = mime.text + ' ' + title
url = self.unwrap_link(a.attr('href'))
- abstract = div_g.select('.st').text.replace('\n', '')
+ matched_keywords = []
+ abstract = ''
+ for childnode in div_g.select('.st').children:
+ if childnode.tag == 'b' and childnode.text != '...':
+ matched_keywords.append({'phrase': childnode.text, 'offset': len(abstract)})
+ abstract = abstract + childnode.text.replace('\n', '')
try:
metadata = div_g.select('.slp').text
metadata = metadata.replace('\u200e', '').replace(' - ', ', ').strip()
@@ -2131,7 +2146,7 @@
continue
index += 1
self.results.append(Result(index, title, url, abstract,
- metadata=metadata, sitelinks=sitelinks))
+ metadata=metadata, sitelinks=sitelinks, matches=matched_keywords))
# Showing results for ...
# Search instead for ...
@@ -2211,6 +2226,7 @@
abstract : str
metadata : str or None
sitelinks : list
+ matches : list
Class Variables
---------------
@@ -2228,7 +2244,7 @@
colors = None
urlexpand = True
- def __init__(self, index, title, url, abstract, metadata=None, sitelinks=None):
+ def __init__(self, index, title, url, abstract, metadata=None, sitelinks=None, matches=None):
index = str(index)
self.index = index
self.title = title
@@ -2236,6 +2252,7 @@
self.abstract = abstract
self.metadata = metadata
self.sitelinks = [] if sitelinks is None else sitelinks
+ self.matches = [] if matches is None else matches
self._urltable = {index: url}
subindex = 'a'
@@ -2266,7 +2283,7 @@
else:
print(' %s%-*s %s %s' % (' ' * pre, indent, index + '.', title, url))
- def _print_metadata_and_abstract(self, abstract, metadata=None, indent=5, pre=0):
+ def _print_metadata_and_abstract(self, abstract, metadata=None, matches=None, indent=5, pre=0):
colors = self.colors
try:
columns, _ = os.get_terminal_size()
@@ -2280,6 +2297,15 @@
print(' ' * (indent + pre) + metadata)
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
@@ -2295,7 +2321,7 @@
def print(self):
"""Print the result entry."""
self._print_title_and_url(self.index, self.title, self.url)
- self._print_metadata_and_abstract(self.abstract, metadata=self.metadata)
+ 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)
@@ -2312,6 +2338,8 @@
obj['metadata'] = self.metadata
if self.sitelinks:
obj['sitelinks'] = [sitelink.__dict__ for sitelink in self.sitelinks]
+ if self.matches:
+ obj['matches'] = self.matches
return obj
def urltable(self):
@@ -2448,7 +2476,7 @@
if logger.isEnabledFor(logging.DEBUG):
import tempfile
- fd, tmpfile = tempfile.mkstemp(prefix='googler-response-')
+ fd, tmpfile = tempfile.mkstemp(prefix='googler-response-', suffix='.html')
os.close(fd)
with open(tmpfile, 'w', encoding='utf-8') as fp:
fp.write(page)
@@ -3046,6 +3074,31 @@
return user_passwd, host_port
+def set_win_console_mode():
+ # VT100 control sequences are supported on Windows 10 Anniversary Update and later.
+ # https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-se...
+ # https://docs.microsoft.com/en-us/windows/console/setconsolemode
+ if platform.release() == '10':
+ STD_OUTPUT_HANDLE = -11
+ STD_ERROR_HANDLE = -12
+ ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004
+ try:
+ from ctypes import windll, wintypes, byref
+ kernel32 = windll.kernel32
+ for nhandle in (STD_OUTPUT_HANDLE, STD_ERROR_HANDLE):
+ handle = kernel32.GetStdHandle(nhandle)
+ old_mode = wintypes.DWORD()
+ if not kernel32.GetConsoleMode(handle, byref(old_mode)):
+ raise RuntimeError('GetConsoleMode failed')
+ new_mode = old_mode.value | ENABLE_VIRTUAL_TERMINAL_PROCESSING
+ if not kernel32.SetConsoleMode(handle, new_mode):
+ raise RuntimeError('SetConsoleMode failed')
+ # Note: No need to restore at exit. SetConsoleMode seems to
+ # be limited to the calling process.
+ except Exception:
+ pass
+
+
# Query autocompleter
# This function is largely experimental and could raise any exception;
@@ -3126,8 +3179,13 @@
addarg('-l', '--lang', metavar='LANG', help='display in language LANG')
addarg('-x', '--exact', action='store_true',
help='disable automatic spelling correction')
- addarg('-C', '--nocolor', dest='colorize', action='store_false',
- help='disable color output')
+ addarg('--colorize', nargs='?', choices=['auto', 'always', 'never'],
+ const='always', default='auto',
+ help="""whether to colorize output; defaults to 'auto', which enables
+ color when stdout is a tty device; using --colorize without an argument
+ is equivalent to --colorize=always""")
+ addarg('-C', '--nocolor', action='store_true',
+ help='equivalent to --colorize=never')
addarg('--colors', dest='colorstr', type=argparser.is_colorstr,
default=colorstr_env if colorstr_env else 'GKlgxy', metavar='COLORS',
help='set output colors (see man page for details)')
@@ -3142,7 +3200,7 @@
addarg('-p', '--proxy', default=https_proxy_from_environment(),
help="""tunnel traffic through an HTTP proxy;
PROXY is of the form [http://][user:password@]proxyhost[:port]""")
- addarg('--noua', action='store_true', help='disable user agent')
+ addarg('--noua', action='store_true', help='legacy option (no effect)')
addarg('--notweak', action='store_true',
help='disable TCP optimizations and forced TLS 1.2')
addarg('--json', action='store_true',
@@ -3165,12 +3223,14 @@
addarg('-D', '--debugger', action='store_true', help=argparse.SUPPRESS)
addarg('--complete', help=argparse.SUPPRESS)
- return argparser.parse_args(args, namespace)
+ parsed = argparser.parse_args(args, namespace)
+ if parsed.nocolor:
+ parsed.colorize = 'never'
+ return parsed
-def main():
- global ua
+def main():
try:
opts = parse_args()
@@ -3203,7 +3263,14 @@
pass
# Set colors
- if opts.colorize:
+ if opts.colorize == 'always':
+ colorize = True
+ elif opts.colorize == 'auto':
+ colorize = sys.stdout.isatty()
+ else: # opts.colorize == 'never'
+ colorize = False
+
+ if colorize:
colors = Colors(*[COLORMAP[c] for c in opts.colorstr], reset=COLORMAP['x'])
else:
colors = None
@@ -3211,6 +3278,10 @@
Result.urlexpand = True if os.getenv('DISABLE_URL_EXPANSION') is None else False
GooglerCmd.colors = colors
+ # Try to enable ANSI color support in cmd or PowerShell on Windows 10
+ if sys.platform == 'win32' and sys.stdout.isatty() and colorize:
+ set_win_console_mode()
+
if opts.url_handler is not None:
open_url.url_handler = opts.url_handler
else:
@@ -3224,8 +3295,7 @@
open_url.suppress_browser_output = True
if opts.noua:
- logger.debug('User Agent is disabled')
- ua = False
+ logger.warning('--noua option has been deprecated and has no effect (see #284)')
repl = GooglerCmd(opts)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/googler.1 new/googler-3.9/googler.1
--- old/googler-3.8/googler.1 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/googler.1 2019-05-30 05:07:26.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "GOOGLER" "1" "27 Mar 2019" "Version 3.8" "User Commands"
+.TH "GOOGLER" "1" "30 May 2019" "Version 3.9" "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.8/packagecore.yaml new/googler-3.9/packagecore.yaml
--- old/googler-3.8/packagecore.yaml 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/packagecore.yaml 2019-05-30 05:07:26.000000000 +0200
@@ -13,23 +13,7 @@
deps:
- python
container: "archlinux/base"
- centos7.0:
- builddeps:
- - make
- deps:
- - python
- commands:
- pre:
- - yum install epel-release
- centos7.1:
- builddeps:
- - make
- deps:
- - python
- commands:
- pre:
- - yum install epel-release
- centos7.2:
+ centos7.4:
builddeps:
- make
deps:
@@ -37,15 +21,12 @@
commands:
pre:
- yum install epel-release
- centos7.3:
+ centos7.5:
builddeps:
- make
deps:
- python
- commands:
- pre:
- - yum install epel-release
- centos7.4:
+ centos7.6:
builddeps:
- make
deps:
@@ -85,16 +66,11 @@
- make
deps:
- python3
-# opensuse42.1:
-# builddeps:
-# - make
-# deps:
-# - python3
-# opensuse42.2:
-# builddeps:
-# - make
-# deps:
-# - python3
+ fedora30:
+ builddeps:
+ - make
+ deps:
+ - python3
opensuse42.3:
builddeps:
- make
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/tests/ci-test-wrapper new/googler-3.9/tests/ci-test-wrapper
--- old/googler-3.8/tests/ci-test-wrapper 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/tests/ci-test-wrapper 1970-01-01 01:00:00.000000000 +0100
@@ -1,93 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-declare here repo_root test_script
-here="$(perl -e 'use File::Basename; use Cwd "abs_path"; print dirname(abs_path(@ARGV[0]));' -- "$0")"
-repo_root="$here/.."
-test_script="$here/test"
-export GIT_DIR="$here/../.git"
-
-declare -a watchlist
-watchlist=(googler tests)
-while [[ $1 == -* ]]; do
- case $1 in
- -h|--help)
- cat <<'EOF'
-Usage: ci-test-wrapper [-h|--help] [--monitor PATH [PATH ...]]
-
-googler(1) testing wrapper for CIs.
-
-Options:
- -h, --help
- Print this help and exit.
- --watch PATH [PATH ...]
- Additional paths (relative to repository root) to watch. Only run tests
- when watched paths have been modified. By default only googler and
- tests/ are watched, but sometimes additional paths should be watched
- depending on circumstances, e.g., for Travis, .travis.yml should also
- be watched. Note that this option consumes all of the remaining command
- line arguments.
-EOF
- exit 1
- ;;
- --watch)
- shift
- watchlist=( "${watchlist[@]}" "$@" )
- shift $#
- break
- ;;
- *)
- printf '\033[31mError: Unrecognized option %q.\033[0m\n' "$1" >&2
- exit 1
- ;;
- esac
- shift
-done
-(( $# > 0 )) && {
- printf '\033[31mError: Unrecognized arguments %s.\033[0m\n' "$*" >&2
- exit 1
-}
-
-# Abort if the CI_SKIP_TEST environment variable is detected.
-if [[ -n $CI_SKIP_TEST ]]; then
- printf 'Detected $CI_SKIP_TEST. Skipping tests.' >&2
- exit
-fi
-
-# Diff HEAD against a base commit to see if the changes are worth
-# testing. (This check is skipped entirely if the CI_FORCE_TEST environment
-# variable is set and non-nil.)
-#
-# * For a regular branch, diff against HEAD^;
-# * For a PR branch, diff against the merge base of HEAD and master.
-#
-# Currently we use $TRAVIS_PULL_REQUEST to determine whether we're building a
-# PR branch. Other criteria may be added if we ever expand to other CIs.
-
-if [[ -z $CI_FORCE_TEST ]]; then
- printf 'We are watching the following paths:\n' >&2
- printf ' - %s\n' "${watchlist[@]}" >&2
- printf '\n' >&2
-
- declare diff_commits diff
- if [[ -z ${TRAVIS_PULL_REQUEST+x} || $TRAVIS_PULL_REQUEST == false ]]; then
- diff_commits='HEAD^..HEAD'
- else
- diff_commits='master...HEAD'
- fi
- diff=$(git -C "$repo_root" diff "$diff_commits" -- "${watchlist[@]}")
- if [[ -z $diff ]]; then
- printf 'None of the watchlist items changed, skipping tests.\n' >&2
- printf 'You may set the $CI_FORCE_TEST environment variable to force testing.\n' >&2
- exit 0
- else
- printf 'Changes to watchlist item(s) detected. Will test.\n\n' >&2
- fi
-else
- printf 'Detected $CI_FORCE_TEST. Skipping necessity checks.\n\n' >&2
-fi
-
-# Test googler(1) with $repo_root at the beginning of $PATH (so that googler
-# from this repo is picked up).
-PATH="$repo_root:$PATH" "$test_script" --ci
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/googler-3.8/tests/test new/googler-3.9/tests/test
--- old/googler-3.8/tests/test 2019-03-27 16:06:06.000000000 +0100
+++ new/googler-3.9/tests/test 2019-05-30 05:07:26.000000000 +0200
@@ -2,7 +2,12 @@
set -e
-declare quiet exitcode
+trap 'exit 130' INT
+
+declare here googler quiet ci exitcode
+
+here="$(python3 -c 'import pathlib, sys; print(pathlib.Path(sys.argv[2]).parent.resolve())' -- "$0")"
+googler=$here/../googler
quiet=0
ci=0
@@ -17,7 +22,7 @@
cat <<'EOF'
Usage: test [options]
-Run automated tests of googler(1). googler(1) is expected on $PATH.
+Run automated tests of googler(1).
Requires shuf(1) from coreutils and /usr/share/dict/words.
@@ -105,12 +110,12 @@
declare -g quiet
if (( quiet )); then
- googler --noprompt -d "$@" &>/dev/null || report_error --rerun "$@"
+ $googler --noprompt -d "$@" &>/dev/null || report_error --rerun "$@"
else
printf '\033[34m==> googler ' >&2
printf '%q ' "$@" >&2
printf '\033[0m\n' >&2
- googler --noprompt -d "$@" || report_error "$@"
+ $googler --noprompt -d "$@" || report_error "$@"
echo
fi
}