Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ilyabizyaev/trash
🗑🚀 The Tracker Shell
https://github.com/ilyabizyaev/trash
file-manager functional-programming haskell vcs version-control
Last synced: 15 days ago
JSON representation
🗑🚀 The Tracker Shell
- Host: GitHub
- URL: https://github.com/ilyabizyaev/trash
- Owner: IlyaBizyaev
- License: gpl-3.0
- Created: 2020-08-01T12:20:55.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-08-01T15:19:48.000Z (over 4 years ago)
- Last Synced: 2024-11-02T03:42:11.443Z (2 months ago)
- Topics: file-manager, functional-programming, haskell, vcs, version-control
- Language: Haskell
- Homepage:
- Size: 215 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Trash — The Tracker Shell
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/IlyaBizyaev/trash/blob/master/LICENSE)
![Haskell Stack CI](https://github.com/IlyaBizyaev/trash/workflows/Haskell%20Stack%20CI/badge.svg)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](https://github.com/jagajaga/itmo-fp-2020) 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](https://chromium.googlesource.com/chromiumos/platform2/+/master/crosh/README.md) and limited practical
benefit of the program.## Usage 🚀
### Running
```bash
$ stack run
```### Commands
**📂 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.
## Development
### Building
```bash
$ stack build
```## Copyright
2020 Ilya Bizyaev , GPL 3+