Metadata-Version: 2.1
Name: mkbak
Version: 1.1.2
Summary: a commandline utility to create file backups
Home-page: https://github.com/sudo-julia/mkbak
Author: Julia A M
Author-email: jlearning@tuta.io
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: System :: Archiving :: Backup
Classifier: Topic :: Terminals
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: mkbak-iterfzf (>=0.6.1)
Requires-Dist: rich (>=9.8.2)

# 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
interactively choose which files to back up.

## Installation

### With Pip

- `pip install --user -U mkbak`

### Building 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 .`

## Usage

- Run `mkbak [options]` to start searching for files to backup
from your current directory

### Arguments

- `-h|--help` display all options
- `--version`             print version information
- `-d, --delete`          iterate through '.bak' files to delete
  - please note that this search can take a while, as it's only returning
'.bak' files
- `-q [QUERY], --query [QUERY]` start the finder with the given query
- `-a, --all`             show hidden and 'dot' files
- `-e, --exact`           exact matching
- `--height [HEIGHT]`       display fzf window with the given height
  - Please note that the `--height` argument will be overridden if set to '100' and
the environment variable `$FZF_DEFAULT_OPTS` contains `--height` set to something
other than '100'
- `-i, --ignore_case`     ignore case distinction
- `--no_mouse`            disable mouse interaction
- `--no_recursion`        run mkbak without recursing through subdirectories
- `-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](https://github.com/sudo-julia/mkbak-iterfzf)
for the fzf interface
- [rich](https://github.com/willmcgugan/rich) for text formatting
- Python^3.7
- Linux

## Changelog

See [CHANGELOG.md](https://github.com/sudo-julia/mkbak/blob/main/CHANGELOG.md)

## Bugs

Open an issue or PR

## ToDo

- [X] Package for pypi
- [X] Define entry point so the program can be run as `mkbak`
- [X] Add all options to README
- [ ] Shell completions

## Credits

Thanks to [dahlia](https://github.com/dahlia) for making [iterfzf](https://github.com/dahlia/iterfzf)


