All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning, though minor breaking changes can happen in minor releases.
Miscellaneous:
Fixed:
- Suppressed stderr output when trying to unset an old function.
Miscellaneous:
- Add Python3.10 classifier to
setup.py
.
Miscellaneous:
- Update python versions supported in
setup.py
(>=3.7). (c968dc)
Miscellaneous:
- Remove import of
funky
insetup.py
. (9a2c36)
Security:
Added:
Changed:
- Installation now requires only that you run
funky --setup-shell SHELL
instead of needing to source thefunky.sh
file directly. (#163, #166, PR:#176)
Miscellaneous:
- Added mypy, flake8, and pylint checks to CI.
- Added type annotations so funky is now strictly typed.
- Added
make lint
target so CI linting checks can be run locally.
Fixed:
- Local funks are being run when in different folder, or after deletion (#164).
Miscellaneous:
- Styled python source files using black.
- Sorted imports using isort.
- Migrated from TravisCI to GitHub actions (#169).
Removed:
- Support for Python 2.7.X, 3.4, and 3.5.
Fixed:
- Old shortcut for
cd
commands prevented funk definitions for running executables (e.g../prog
). - Use
command rm
overrm
so user aliases are skipped.
Fixed:
- Module
six
not included in requirements.
Added:
- Funk definition shortcut for simulating shell variables (by quoting the funk definition).
Changed:
- The
--color
option now accepts 'y' and 'n' arguments. - Append
$@
to absolute directory path when usingcd
funk definition shortcuts.
Fixed:
- Lingering Python 2.7.X compatibility issues.
Added:
- Funk definition shortcut for using
cd
command with relative directories. - Start vim using
+startinsert
option when adding a new funk
Fixed:
- Python 2.7.x Support
Fixed:
- Don't assume
/home/<user>
is home directory (breaks MacOS)
Added:
- Bash Support
Removed:
- Compdef ZSH autocompletion statements. These are incompatiable with bash.
Fixed:
- Continued issues with resolving executable path.
Fixed:
- Continued issues with resolving executable path.
Fixed:
- Replace
which
withcommand -v
Removed:
- Delay when -a is used for existing funk.
Fixed:
- "$@" being appended to command string when command ends with keyword (e.g. 'return', 'done', 'fi', etc....).
- Store temporary file in /var/tmp instead of current working directory.
- /usr/bin/funky should not be hard-coded
Fixed:
- PyPI markdown rendering
Changed:
- Renamed project from 'localalias' to 'funky'.
Fixed:
- Editor call breaks when $EDITOR includes command-line options
Added:
- Automatically add zsh autocompletion for single-line funks.
Changed:
- The show command (used by default when no other command group is specified) now only treats
the given funk as a prefix if it ends in two periods (
..
). Otherwise, the funk is matched exactly. Prior to this change, there was no way to specify an exact match.
Fixed:
- funky.zsh incorrectly assumes that $HOME==/home/
- If the Rename command (
-R
) is used to rename a funk to an existing funk's name, the user should be prompted to confirm. - Using
-vh
or-hv
command-line options should show verbose help output. - Moved 'timestamp' and 'localpath' files to user specific directory to keep this data from being overwritten by other users (notably, to keep root from overwritting these files).
Removed:
- Oh-My-ZSH plugin support. The
funky.zsh
script will now need to be manually sourced into the user'szshrc
.
Fixed:
- When traveling back to the project root directory (the first directory to have sourced local functions), it is certain that sourcing the global functions will not override any local functions defined in parent directories. Since it is safe, it is preferred to do so; otherwise, some global functions may still be overriden by local ones even after traveling back to an ancestor of the directory where said local functions were defined. This can still happen, but sourcing global functions when traveling back to the project root dir makes it less likely.
Changed:
- No longer separate multiline function defs from single-line function defs in Show command output.
- Use case-insensitive sort when sorting function names.
- Changed global function database from
/home/<user>/.globalfunk
to/home/<user>/.funky
.
Fixed:
- Creating a
.funky
file at/home/<user>
would breakchpwd()
function, causing all global function overrides to persist until the end of the session even if the user changes back to the his/her home directory.
Added:
-
New VDEBUG ("verbose debug") logging level.
-
--verbose
option- Used with
--debug
it sets new VDEBUG logging level. - Used without any other options, the Show action command is run using verbose output. Going forward this will be used when sourcing function definitions.
- Used with
--help
it unsuppresses any suppressed options (e.g. currently--global
is normally suppressed).
- Used with
Fixed:
- No longer unalias all single-letter funks automatically. Instead, functions/funks created
with funky will automatically unalias function name before function definitions. (This
requires the
--verbose
option to make visible in Show command output.)
Fixed:
- Switching to another folder with local funks causes old local funks to continue to override global funks
Fixed:
-
Leaving a directory with local funks should unmask globalfunks.
- Meaning that any global funks that were previously overridden should be back in scope.
Fixed:
- Local funks were not consistently overriding global funks
Fixed:
- Local database was not being deleted consistently when empty, as it should be.
Fixed:
- Add (
-a
) and Edit (-e
) commands now act more approriately when command definition is left blank.
Changed:
- Local funks are now sourced into
.zshrc
.
Removed:
-
Execute command (
-x
). No longer needed now that funked are sourced directly into.zshrc
. -
Bash support
- I wanted to focus on providing one service well. ZSH has some more advanced features than bash. Since I don't use bash, I'm not enthusiastic about supporting it. I'll reimplement it on request, but am not going to waste my time otherwise.
Fixed:
- Using
-x
without argument should fail explicitly. (v2.2.1 did not resolve this issue as I had thought.)
Fixed:
- Using
-x
without arguments should fail explicitly
Added:
-
Global funks (invoked with the
--global
option):- Global funks allow you to create default definitions for funks that can be overridden on a local basis.
- All action commands still work properly when
--global
is used but they operate on the global database instead of the local one.
Fixed:
- Dashed command-line arguments are not properly passed to command definition when a funk is executed.
Added:
- New "rename" action command (
-R
option). - New
--version
option.
Changed:
-
Remodeled argument parsing strategy. This remodel is mostly internal. A few actual changes in the API have taken place:
- Options take arguments now, so the funk name must follow the action command.
- The Show command no longer has an explicit option.
- Long options have been removed.
Fixed:
- Automatic command-line arguments are word-splitting for single-line funk definitions without param arguments.
Fixed:
- Executed command's exit status not preserved (reintroduced this bug with v2.0.3).
Fixed:
- Double printout of "command not found" message (caused by debug message left active in v2.0.3).
Added:
- Bash support.
Changed:
la
is no longer an entry point. It is now only a recommended funk.- funky.sh is now copied to
$XDG_CONFIG_HOME/funky/funky.sh
for easy access. - funky.sh is now symlinked to oh-my-zsh custom plugin directory instead of being copied.
Changed:
- Condensed show command output by grouping together single-line funk definitions.
Fixed:
- Funk arguments are handled intuitively again (without needing to explicitly append $@ to the definition).
- Automatic la funk on some systems blocks entry point. It is now unaliased at install time.
- Funk execution masks exit status.
Fixed:
- Demonstration gif not working on PyPI project page.
Migration from bash script prototype to python project and uploaded to PyPI.
Prototype version. Funky bash script.