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
- Host: GitHub
- URL: https://github.com/guilt/gep
- Owner: guilt
- License: mit
- Created: 2025-06-19T01:32:03.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-07-06T00:46:24.000Z (4 months ago)
- Last Synced: 2025-09-24T12:41:02.445Z (about 1 month ago)
- Topics: chatgpt, dos, grok, installer, tools, vibe-coding
- Language: C++
- Homepage: https://karthikkumar.org
- Size: 27.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE.MD
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