Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.51 KB

README.md

File metadata and controls

37 lines (27 loc) · 1.51 KB

pacman-fs

Aims to implement pkgfs over libalpm (pacman)

Running

go run *.go path-to-mountpoint

I forgot whether go gets dependencies too and all that, so in case it doesn't:

go get bazil.org/fuse
go get bazil.org/fuse/fs

pacman-fs in action

pacman-fs in action, via asciinema

Layout

main.go is the entry point. It's just in charge of parsing arguments and wiring our filesystem to FUSE.

Each of the subdirectories has its own README for your pleasure, but a concise description:

  • In the src directory you'll find the filesystem itself, with all its directories and galore.
  • libalpm (Arch Linux Package Manager library) is what pacman serves as a frontend of. The alpm directory is my wrapping of (some) of its features.

So far, there isn't so much to the code. I expect this will change as the project ages.

What's in

  • Mountpoint acts as /pkg, featuring both index/ and installed/!
  • Each package has a description, version and size files.
  • Packages have a deps folder with symlinks to their dependencies.
  • Install packages via /pkg/index/name/install
  • And uninstall via /pkg/installed/name/uninstall
  • Sync to remote with /pkg/sync
  • Installed packages have a files/ directory, which contains the tree of files the package installed on the filesystem.