Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oleander/unpack
An automated unpacking tool for *nix, using Ruby
https://github.com/oleander/unpack
Last synced: 2 months ago
JSON representation
An automated unpacking tool for *nix, using Ruby
- Host: GitHub
- URL: https://github.com/oleander/unpack
- Owner: oleander
- Created: 2011-01-28T20:13:56.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2011-02-07T01:32:44.000Z (almost 14 years ago)
- Last Synced: 2024-09-17T03:51:43.192Z (4 months ago)
- Language: Ruby
- Homepage: https://github.com/oleander/Unpack
- Size: 313 KB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
Awesome Lists containing this project
README
# Unpack*(er)* - *run files, run*
## What is Unpack?
Unpack makes it possible to unarchive rar and zip files using ruby.
You pass a directory and it will find all your archive files, unpack and remove them (if you want to).
## So how do I use it?
### Start by installing the gem
sudo gem install unpack
Start `irb` and include the gem, `require 'unpack'`
## Working with a directory
### Unpack everything in the current directory
$ Unpack.runner!
=> [#]### Unpack everything in another directory
$ Unpack.runner!('/some/dir')
=> [#]### Unpack and delete archived file
$ Unpack.runner!('.', remove: true)
=> [#]
$ Unpack.runner!('.', remove: true)
=> []### Remove every archive file, even if nothing where unpacked
$ Unpack.runner!('.', remove: true, force_remove: true)
=> []
### Unpack all archived file, but not deeper 3 folders down
$ Unpack.runner!('.', depth: 3)
=> [#]### Unpack everything, even one file directories
To prevent you from unarchive files in folders that contains subtitles and other nonrelevant files, the folder must contain 5 archive files or more.
If you want to unpack everything, even subtitles directories, then you will have to specify the `min_files` option.
$ Unpack.runner!('.', min_files: 0)
=> [#]
## Working with one specific file### Unpack a file
$ Unpack.it!(file: 'zip/my_file.zip')
=> [#]
### Unpack a specific file, removing it when done
$ Unpack.it!(file: 'zip/my_file.zip', remove: true)
=> [#]
### Unpack a specific file and move the new files to a destination directory
$ Unpack.it!(file: 'zip/my_file.zip', to: '/tmp')
=> [#]## Some configure alternatives
### The *runner!* method
- ** :min_files ** (Integer) The minimum amount of files in the directory you want to archive the files in. *Default is 5*.
- ** :depth ** (Integer) The maximum folder depth. *Default is 2*.
- ** :debugger ** (Boolean) Prints some debug output into the console. *Default is false*.
- ** :force_remove ** (Boolean) Remove rarfiles, even if no files where unarchived. *Default is false*. **To get this to work you also have to set the `remove` option to true**.
- ** :remove ** (Boolean) Removes archived files after they have been used. *Default is false*.
- ** :absolute_path_to_unrar ** (String) The absolut path to the unrar binary. *Default is the [unrar](http://homepage.mac.com/pnoriega/unrar.html) binary that comes with the gem*.### The *it!* method
- **:to** (String) The absolute or relative path to the destination directory. If nothing is defined, the *:file* path will be used.
- **:file** (String) The absolute or relative path to the archive file.
- **:remove** (Boolean) See the *runner!* method above
- **:absolute_path_to_unrar** (String) See the *runner!* method above
- **:debugger** (String) See the *runner!* method above## What is being returned?
The `runner!` method returns an `Array` of `Container` instances.
The `it!` method returns an instance of `Container`.These are the accessors of the `Container` class.
- **files** (String) The absolut path to the files that where unarchived.
- **directory** (String) The absolut path to the folder containing the files.## This sounds supr, how do I help?
- Start by copying the project or make your own branch.
- Navigate to the root path of the project and run `bundle`.
- Start by running all tests using rspec, `autotest`.
- Implement your own code, write some tests, commit and do a pull request.## Requirements
The gem is tested in OS X 10.6.6 using Ruby 1.9.2 and 1.8.7.
## Thanks to ...
- the [UnRarX](http://homepage.mac.com/pnoriega/unrar.html) team that provies the unrar binary.
- [NinoScript](https://github.com/NinoScript) that solved the console-escaping issue - [see this commit](https://github.com/oleander/Unpack/commit/dd7e46200a490c7af9fc5f770127291192a818f5).