- Corrects an error with `--search`. Previously, `--search` was not
aware of whether it was outputted to a TTY, and would apply colorization
at all times. This resulted in unwanted behavior when, for example,
piping search results into a paginator.
- Corrects an error with `--color`. Previously, `--color` would be
ignored if output was being written to a non-TTY. This made it
impossible, for example, to `cheat tar --color | less -R`, as
colorization would always be stripped. The behavior of `--color` has
been modified such that it now behaves similarly to `--color=always` in
other applications.
Build scripts now invoke `go mod vendor` and `go mod tidy` early in the
build process, to ensure that the `vendor` directory stays consistent
with the `go.mod` et. al.
Repairs the `config` unit-tests which were broken with `3.0.4`. It does
so by providing a simple switch that allows us to disable the resolution
of filesystem symlinks when running tests.
- Deprecates `bin/deps.sh`. It was rendered obsolete with 217566, and
the introduction of a `go.mod` file.
- Fixes two minor typos in the buld scripts.
- Bumps the version to `3.0.1`.
- Re-implemented the project in Golang, and deprecated Python entirely
- Implemented several new, long-requested features
- Refactored cheatsheets into a separate repository
The prior attempt to resolve#420 and #431 relied on `appdirs` to
determine the appropriate directories into which to install files.
Previously, `setup.py` dynamically attempted to install `appdirs` via
`pip` during installation if necessary.
This attempt to failed on multiple platforms, however, due to
backwards-incompatible `pip` interfaces.
As a workaround, I have now directly included `appdirs` (a small module)
within `cheat` itself. This approach is explicitly supported per the
`appdirs` documentation:
https://pypi.org/project/appdirs/
Resolves the following:
- #351 (use of `sudo` when installing)
- #420 (failure to install on Windows)
- #431 (failure to install on MacOS)
Application now relies on `appdirs` module to identify the appropriate
locations for storing configuration and data, both during installation
and runtime.
Attempted to address various cross-platform installation issues:
- Removed all hard-coded references to file-paths, and replaced them
with paths provided by `appdirs`.
- Removed (erroneously inserted) default file paths which would never be
checked due to application logic.
- Modified `setup.py` to no longer install a configuration file. The
mechanics are still in place to **read** a configuration file, but
after examination, I've concluded that the installation of that file
is best left to package maintainers rather than `cheat` itself.
The prior attempt to resolve#420 and #431 relied on `appdirs` to
determine the appropriate directories into which to install files.
Previously, `setup.py` dynamically attempted to install `appdirs` via
`pip` during installation if necessary.
This attempt to failed on multiple platforms, however, due to
backwards-incompatible `pip` interfaces.
As a workaround, I have now directly included `appdirs` (a small module)
within `cheat` itself. This approach is explicitly supported per the
`appdirs` documentation:
https://pypi.org/project/appdirs/
Resolves the following:
- #351 (use of `sudo` when installing)
- #420 (failure to install on Windows)
- #431 (failure to install on MacOS)
Application now relies on `appdirs` module to identify the appropriate
locations for storing configuration and data, both during installation
and runtime.
- Added `ci/lint.sh`, which uses `flake8` to lint the relevant files
- Made changes to appease the linter.
- Bugfix in `cheat/configuration` (missing dependency)
Refactored `Sheet` class:
- Removed unnecessary indirection and extraneous methods
- Renamed some methods to conform to Pythonic conventions
- Renamed the `create_or_edit` method to `edit` to be consistent with
subcommand name (`--edit`)
- Extracted `Colorize` class out of `Util` class. (The latter now only
contains static methods.)
- Renamed methods in `Colorize` class for improved clarity.
- Refactored as necessary to accommodate the changes above.
Performed a general refactoring, focusing on the following:
- Removing layers of abstraction in config handling
- Stubbing out proper config validator
- Updating envvar names located throughout the project
Added a missing `termcolor` dependency to `install_requires` in
`setup.py`. `termcolors` was introduced as an optional dependency when
the `CHEAT_HIGHLIGHT` envvar was implemented.