diff --git a/README.md b/README.md index 69c7b63..a46502c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,72 @@ [![Build Status](https://drone.friedl.net/api/badges/incubator/xwim/status.svg)](https://drone.friedl.net/incubator/xwim) # XWIM - Do What I Mean Extractor + +![https://xkcd.com/1168/](https://imgs.xkcd.com/comics/tar.png) + +Continuing the emacs tradition of "Do What I Mean" tools, dtrx is a replacement +for the excellent, but unfortunately unmaintained, +[dtrx](https://github.com/brettcs/dtrx). `xwim` is a command line tool that +targets two problems with archives: + +- Command line tools for extracting archives are often archaic and differ + considerably between formats +- Inconsiderately packaged archives tend to spill their content over the + directory they are extracted to + +# Usage +Invoking `xwim` is as simple as: + +```shell +xim archive.tar.gz +``` + +This will extract the archive `archive.tar.gz` to the current folder. If the +archive contains a single root folder named like the archive, it is just +extracted as is. Otherwise `xwim` first creates a folder named after the archive +and extracts the contents there. + +# Examples + +## Single root folder named after the archive + +``` +archive.tar.gz +| +-- archive/ + | + -- file.txt + | + -- file2.txt +``` + +`xwim` will just extract the archive to the current directory. + +## Multiple files/folders in archive root + +``` +archive.tar.gz +| +-- archive/ +| | +| -- file.txt +| +-- file2.txt +``` + +`xwim` will create a folder `archive` in the current directory and extract the +archive contents there. + +# Supported formats +`xwim` is indifferent to the actual extraction backend. However, currently only +[libarchive](https://libarchive.org/) is supported. `xwim` supports most formats +supported by `libarchive`: + +- 7-zip: 7z, 7zip +- zip: jar, zip +- bzip2: bz2, bzip2 +- gzip: gz, gzip +- xzip: xz +- rar: rar +- tar with compression: tgz, tar.gz, tar.bz2, tar.xz