a commandline utility to create file backups
Project description
mkbak.py
mkbak
is a commandline utility to painlessly create file backups.
It interfaces with fzf
as a menu for file selection, allowing you to
quickly select files.
Installation
With Pip
pip install --user -U mkbak
With Poetry
- Download the repository:
git clone https://github.com/sudo-julia/mkbak
- Enter the repo
cd mkbak
- Install dependencies:
poetry install
- Run mkbak:
poetry run mkbak
- To avoid typing this every time you want to run the program,
you can alias the above command with:
alias mkbak='poetry run mkbak'
.
- To avoid typing this every time you want to run the program,
you can alias the above command with:
From Source
- Download the repository:
git clone https://github.com/sudo-julia/mkbak
- Enter the repo
cd mkbak
- Build the package:
python3 setup.py sdist bdist_wheel
- Install from the local build
pip install --user -U .
- Run mkbak:
mkbak
- Please note that running from a local build may not set up the entry point
correctly, resulting in:
bash: command not found: mkbak
. In this case, simply runalias mkbak='python3 -m mkbak'
. This sets upmkbak
to be run as a module whenmkbak
is typed, which solves the entry point problem. You can add thealias
command to the bottom of your shell's configuration file for it to be set automatically at your terminal's initialization.
Usage
usage: mkbak [-h] [-a] [--ansi] [--bind BIND] [-d] [-e] [--height HEIGHT] [-i] [--no_mouse] [--no_recursion]
[--no_sort] [--padding PADDING] [-p PATH] [--preview PREVIEW] [--print_query] [--prompt PROMPT]
[-q QUERY] [-u] [-v] [--version]
optional arguments:
-h, --help show this help message and exit
-d, --delete iterate through '.bak' files to delete
-q QUERY, --query QUERY
start the finder with the given query
-u, --unbak restore files to their most recent backup
--version print version information
-a, --all show hidden and 'dot' files
--ansi enable processing of ANSI color codes
--bind BIND custom keybindings. refer to fzf's manpage
-e, --exact exact matching
--height HEIGHT display fzf window with the given height
-i, --ignore_case ignore case distinction
--no_mouse disable mouse interaction
--no_recursion run mkbak without recursing through subdirectories
--no_sort don't sort the results
--padding PADDING padding inside the menu's border
-p PATH, --path PATH directory to iterate through (default '.')
--preview PREVIEW starts external process with current line as arg
--print_query print query as the first line
--prompt PROMPT input prompt (default: '> ')
-v, --verbose explain what is being done
Example
mkbak -vi --path "$folder" -q 'pdf$'
will launch mkbak searching$folder
, query files ending in 'pdf', ignore case distinctions in file names and print out any errors along with files successfully copied
Requirements
- mkbak-iterfzf for the fzf interface
- rich for text formatting
- Python^3.7
- Linux
Changelog
See CHANGELOG.md
Bugs
Open an issue or PR
TODO
- Package for pypi
- Define entry point so the program can be run as
mkbak
- Add all options to README
- Github releases
- Move argument parsing to a separate module
- Mode to replace a regular file with its backup
- Create documentation
- Shell completions
Credits
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mkbak-1.3.2.tar.gz
(7.4 kB
view details)
Built Distribution
mkbak-1.3.2-py3-none-any.whl
(20.9 kB
view details)
File details
Details for the file mkbak-1.3.2.tar.gz
.
File metadata
- Download URL: mkbak-1.3.2.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83afeea70b39efac6cc95fc7f90d560b01dc61ae3c79637f62c46409cfc194e7 |
|
MD5 | 22e9f86a9cc1ec9d04517d25c1d107cb |
|
BLAKE2b-256 | 9795519c9d2997bc9ad51ae6d4a19392e36a7ff3860c7ea434789a712da79189 |
File details
Details for the file mkbak-1.3.2-py3-none-any.whl
.
File metadata
- Download URL: mkbak-1.3.2-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0859bcaa4753d7201498ff6901fdf4314134c56ad8de5551befd2a941eb5ac87 |
|
MD5 | dee23b3bd03f55284575c9efb68338bc |
|
BLAKE2b-256 | 4d9c2281362ae18d15ebe44692d08dd87e2ce6178ae210b3bd73d839daa05081 |