Tag System
- 1 Devlogs
- 8 Total hours
A tag-based file system interface that offers nested tag structures and powerful searching.
A tag-based file system interface that offers nested tag structures and powerful searching.
This is kind of big for my first log, because I wasn’t initially planning on putting this on stardance.
Essentially, a few years ago I came across a video I’m not going to link where the youtuber detailed their troubled search for a good tag-based filesystem, before ultimately resorting to implementing their own. I thought that seemed pretty cool, and despite the fact I’ve never used nor felt a need for a tag-based system, I downloaded the project to try it out.
I was immediately struck by two things:
Look. There’s nothing wrong with python. It’s a useful language with many valid applications.
At the same time.
REALLY?
This is the best we can do?
IDK there was something that struck me as so lackluster about it that my immediate reaction was ‘I could do better than that.’
So here I now am to do just that.
The lightbulb moment that brought me back to the project a week or so ago was that I could probably implement the whole thing with directories and symlinks.
Basically, if I create a directory tree in which each directory is a tag and each file that has a symlink in that directory has that tag, then I have the capacity to apply as many tags as I want to a given file, I have the ability to nest tags, and searching these tags should be as easy as navigating a typical filesystem.
At a very basic level, this first log contains all those functions. You can add tags, remove tags, tag files, and search the tags, though each one of these functions has issues.
Things I plan to resolve in the future include, but are not limited to:
Tag adding/management:
There are also other bugs and behaviours I need to fix/improve. This project is also an experiment with test driven development for me, something I’ve heard much about yet not really played with much. Currently, all tests pass; I expect that to change soon.
I wanna make my code a lot less ugly rn too because I don’t like it rn.
Once the CLI is in a stable state, I plan on implementing a UI in iced-rs, which will really just be a frontend that calls the CLI. (Also considering figuring out how to rewrite the CLI as a library that I can use directly, but CLI functionality is a priority.)
uuh yeah that’s it for now don’t forget to like and subscribe for more epic tagging content.
Also if anyone actually thinks a tagging system would be useful for them please reach out with suggestions because I doubt im ever actually gonna use this system lol it just seemed fun to make.
okibaii