This repository contains a small shell implementation that has some basic file management commands and a tiny VCS called Tracker. It was developed for educational purposes during the Functional Programming course at ITMO University.
The idea was to read the file system state of a sufficiently small directory into memory, and then use pure functions to operate on that state.
Supported file management operations include file and directory creation, display, modification, and removal. The built-in version control tool,
tracker
, is capable of storing indexed file revisions, logging file modification history and reverting to previous versions. Directories are
treated as a list of their contents.
On exit, the resulting state is written back to the storage. Revision history and metadata are saved into a .tracker
subdirectory.
The name was inspired by crosh and limited practical benefit of the program.
$ stack run
π File management: use -h
in REPL for a list of supported FM commands.
β³ Version control: use tracker -h
in REPL for a list of supported VCS commands.
Disclaimer: due to limited testing, bugs are to be expected.
$ stack build
2020 Ilya Bizyaev [email protected], GPL 3+