3 releases

new 0.1.2 Nov 14, 2024
0.1.1 Nov 10, 2024
0.1.0 Nov 8, 2024

#237 in Command line utilities

Download history 89/week @ 2024-11-03 211/week @ 2024-11-10

300 downloads per month

MIT license

28KB
456 lines

🗜️ Squishy

License: MIT

A convenient wrapper around the backhand library for reading and extracting files from SquashFS filesystems.

Features

  • Extract AppImage resources:
    • Icon files (PNG/SVG)
    • Desktop entries
    • AppStream metadata
  • Flexible output options

Installation

From crates.io

cargo install squishy-cli

From source

git clone https://github.com/pkgforge/squishy-rs
cd squishy-rs
cargo install --path squishy-cli

Usage

The CLI tool provides convenient commands for working with AppImage files.

Basic Commands

# Extract icon from an AppImage
squishy appimage path/to/app.AppImage --icon

# Extract desktop file
squishy appimage path/to/app.AppImage --desktop

# Extract AppStream metadata
squishy appimage path/to/app.AppImage --appstream

# Extract and save files to a specific directory
squishy appimage path/to/app.AppImage --icon --write /output/path

# Extract multiple resources at once
squishy appimage path/to/app.AppImage --icon --desktop --appstream --write

# Filter path by query
squishy appimage path/to/app.AppImage --filter "squishy" --icon --desktop --appstream --write

# Provide custom offset (it'd be calculated automatically if not provided)
# Appimage offset can be read using `path/to/app.AppImage --appimage-offset`
squishy appimage path/to/app.AppImage --offset 128128 --icon --desktop --appstream --write

# The default output file has same name as the provided file.
# Use --original-name to save as the same file name found inside SquashFS
squishy appimage path/to/app.AppImage --icon --write --original-name

Command Options

  • --offset: Custom offset (i.e. the size of ELF)
  • --filter: Filter the files using provided query
  • --icon: Extract application icon
  • --desktop: Extract desktop entry file
  • --appstream: Extract AppStream metadata
  • --write: Write files to disk (optional path argument)

License

This project is licensed under the [MIT] License - see the LICENSE file for details.

Dependencies

~8MB
~152K SLoC