Added readme
This commit is contained in:
parent
e7dedf3e02
commit
7bc060c49a
|
@ -0,0 +1,137 @@
|
||||||
|
# WHERE - Universal System File and Package Mapper
|
||||||
|
|
||||||
|
A command-line tool that provides comprehensive observability into your Linux system's package installations and file ownership. Built in Rust for performance and reliability.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Universal Package Manager Support** - Works with DNF, APT, Flatpak, Snap, and more
|
||||||
|
- **File Ownership Tracking** - Instantly identify which package owns any file
|
||||||
|
- **Package Tree Visualization** - See all files installed by a package in tree format
|
||||||
|
- **Cross-Distribution Compatibility** - Single tool that works across Linux distributions
|
||||||
|
- **High Performance** - Memory-mapped binary format for fast queries
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repository-url>
|
||||||
|
cd where
|
||||||
|
cargo build --release
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Show Package File Tree
|
||||||
|
Display all files installed by a specific package in a hierarchical tree structure:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Show files installed by bash package
|
||||||
|
cargo run -- tree --package bash
|
||||||
|
|
||||||
|
# Show trees for first 5 packages (demo mode)
|
||||||
|
cargo run -- tree
|
||||||
|
```
|
||||||
|
|
||||||
|
### Package Information
|
||||||
|
Get detailed information about a specific package:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Show package details and file tree
|
||||||
|
cargo run -- package bash
|
||||||
|
```
|
||||||
|
|
||||||
|
### File Ownership
|
||||||
|
Find out which package owns a specific file:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check who owns /usr/bin/bash
|
||||||
|
cargo run -- file /usr/bin/bash
|
||||||
|
```
|
||||||
|
|
||||||
|
### List All Packages
|
||||||
|
Display all installed packages:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# List all packages
|
||||||
|
cargo run -- packages
|
||||||
|
```
|
||||||
|
|
||||||
|
### Find Files
|
||||||
|
Search for files within packages:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find all files in bash package
|
||||||
|
cargo run -- find --package bash
|
||||||
|
```
|
||||||
|
|
||||||
|
## Example Output
|
||||||
|
|
||||||
|
### Package Tree
|
||||||
|
```
|
||||||
|
bash 5.2.15-6.fc41
|
||||||
|
├── usr/
|
||||||
|
│ ├── bin/
|
||||||
|
│ │ └── bash
|
||||||
|
│ └── share/
|
||||||
|
│ ├── doc/
|
||||||
|
│ │ └── bash/
|
||||||
|
│ │ ├── CHANGES
|
||||||
|
│ │ ├── README
|
||||||
|
│ │ └── NEWS
|
||||||
|
│ └── man/
|
||||||
|
│ └── man1/
|
||||||
|
│ └── bash.1.gz
|
||||||
|
└── etc/
|
||||||
|
└── skel/
|
||||||
|
└── .bashrc
|
||||||
|
```
|
||||||
|
|
||||||
|
### File Ownership
|
||||||
|
```
|
||||||
|
/usr/bin/bash is owned by package: bash
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The tool is designed with a modular architecture supporting multiple package managers:
|
||||||
|
|
||||||
|
- **Package Manager Abstraction** - Common interface for all package managers
|
||||||
|
- **Binary Database Format** - High-performance storage for file metadata
|
||||||
|
- **CLI Interface** - Clean command-line interface built with Clap
|
||||||
|
- **Tree Visualization** - Hierarchical display of package contents
|
||||||
|
|
||||||
|
## Supported Package Managers
|
||||||
|
|
||||||
|
- ✅ **DNF/RPM** (Fedora, RHEL, CentOS)
|
||||||
|
- 🚧 **APT** (Debian, Ubuntu) - Coming Soon
|
||||||
|
- 🚧 **Flatpak** - Coming Soon
|
||||||
|
- 🚧 **Snap** - Coming Soon
|
||||||
|
- 🚧 **Pacman** (Arch Linux) - Coming Soon
|
||||||
|
|
||||||
|
## Development Philosophy
|
||||||
|
|
||||||
|
This tool is part of the **IntentOS** project, focused on creating systems where every component has clear provenance and purpose. The core principle is "know where everything is" - eliminating the entropy and "shrapnel" that accumulates in traditional Linux installations.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Built with Rust 2021 edition. Key dependencies:
|
||||||
|
- `clap` - Command line argument parsing
|
||||||
|
- `memmap2` - Memory-mapped file access
|
||||||
|
- `chrono` - Date/time handling
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[Add your license here]
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
- [ ] Complete support for all major package managers
|
||||||
|
- [ ] Real-time filesystem monitoring
|
||||||
|
- [ ] Binary database format for fast queries
|
||||||
|
- [ ] GUI interface
|
||||||
|
- [ ] Integration with IntentOS package manager
|
||||||
|
- [ ] Package installation profiles
|
||||||
|
- [ ] System entropy analysis tools
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*WHERE gives you complete visibility into your system's package installations - because you should know where everything comes from.*
|
Loading…
Reference in New Issue