An open API service indexing awesome lists of open source software.

https://github.com/guilt/gep

Great Extractor and Packer for DOS
https://github.com/guilt/gep

chatgpt dos grok installer tools vibe-coding

Last synced: 29 days ago
JSON representation

Great Extractor and Packer for DOS

Awesome Lists containing this project

README

          

# GEP (Great Extractor Packer)

GEP is a modernized revival of the 2001 [EP](https://github.com/guilt/EP) (Extractor Packer) project, a portable tool for packing and extracting files, directories, commands, and banners. It creates self-contained packages (`GEPPACK.EXE`) or external manifests (`SAMPLE.MF`) with a retro Turbo Vision UI, running on DOS, Windows, Linux, macOS and maybe *BSD.

## Features
- **Portable**: Works on DOS, Windows, Linux, macOS and maybe *BSD.
- **Modular**: Shared `Manifest` class for packing/extraction.
- **Interactive**: Turbo Vision UI for adding/extracting entries.
- **Non-Interactive**: Pack via `SAMPLE.DAT` input.
- **Permissions**: Unix `chmod` support (e.g., `0644`).
- **Sound**: PC speaker beeps (DOS), ASCII bell (others).
- **Validation**: Checks manifest syntax and offsets.

## Files
- **Source**: `EXTR.CPP`, `PACKER.CPP`, `MANIFST.H`, `COMMON.H`
- **Build Scripts**: `BUILD.BAT` (DOS), `CMakeLists.txt` (Others)
- **Test Files**: `SAMPLE.DAT`, `TEST.TXT`

## Building

### DOS (Borland C++)

1. Install Borland C++ 4.5 or higher.
2. Copy files to a directory (e.g., `C:\GEP`).
3. Ensure Turbo Vision Includes/Libs and Compiler are in Path. See and edit `BUILD.BAT`
4. Run:
```
BUILD.BAT
```
5. Get `EXTR.EXE` size (e.g., 23234 bytes via `DIR EXTR.EXE`).
6. Recompile for embedded manifest:
```
BUILD.BAT -DFILE_SIZE=23234
```

### Windows/Linux/macOS/*BSD

1. Install CMake, gcc/clang, Turbo Vision (`libtvision`), and `ncurses5w`.
2. Create build directory:
```
mkdir build && cd build
```
3. Run CMake:
```
cmake ..
```
4. Build:
```
make
```
5. Get `extractor` size (e.g., `ls -l extractor` or `dir extractor.exe`).
6. Recompile for embedded manifest:
```
cmake -DFILE_SIZE=23234 ..
make
```

## Usage

### Packer

- **Interactive**:
```
./packer
```
Use Turbo Vision UI to add files (`Alt-F`), directories (`Alt-D`), groups (`Alt-G`), commands (`Alt-C`), banners (`Alt-B`), and save (`Alt-S`) to `GEPPACK.EXE` and `SAMPLE.MF`.
- **Non-Interactive**:
```
./packer SAMPLE.DAT
```
Packs entries from `SAMPLE.DAT` into `GEPPACK.EXE` and `SAMPLE.MF`.

### Extractor

- **Embedded**:
```
./extr
```
Extracts package with embedded manifest.

- **External**:
```
./extr SAMPLE.MF
```
Extracts using external manifest.

## SAMPLE.DAT Example

```plaintext
1 Group 1 - Basic Text Files
3 TEST.TXT [Basic Text File] none|0644
2 DATA.DIR [Data Directory]
```

Place `TEST.TXT` (e.g., “do-re-mi!”) in the same directory as `SAMPLE.DAT`. Run `./packer SAMPLE.DAT` to create `GEPPACK.EXE` and `SAMPLE.MF`.

## Testing
1. Create `TEST.TXT` with “do-re-mi!”.
2. Run `./packer SAMPLE.DAT` to generate `GEPPACK.EXE` and `SAMPLE.MF`.
3. Run `./GEPPACK` or `./extractor SAMPLE.MF` to extract.
4. Verify `TEST.TXT` (permissions `0644` on Unix-like systems) and `DATA.DIR` are created.

## Notes

- Ensure `TEST.TXT` and other files in the same directory as `SAMPLE.DAT`.

## License

See [LICENSE](LICENSE.md).

## Feedback

* Authors: [Grok 3.0](https://www.grok.com), [ChatGPT 4.1](https://openai.com/) and Debugger: [Karthik Kumar Viswanathan](https://karthikkumar.org)
* Web : http://karthikkumar.org
* Email : me@karthikkumar.org