fedran-cli

Due to some random happenstance, I was presented the opportunity to get a sensitivity reader for Flight of the Scions. I've been thinking about doing this for a few years, ever since I realized I rewrote the novel for no-so-great reasons but had the misfortune of hanging much of the phase-1 stories off of events in that book.

This forced me to integrate the edits I've been avoiding for the last six months and get them into the site. So, the version currently on my website would be the latest, but at the moment, there is a bug preventing me from actually showing them.

I know that Flight has been hanging around for decades (it was supposed to be my first published novel) but this is a step that I've been feeling like I need to do. Of course, my anxiety helpfully suggests that the reader is going to find the novel complete and utter trash so there is that. I'm hoping it isn't but I've never had a sensitivity reader before and I'm not sure what to expect.

To distract myself from the impending complete rejection of my project, I needed to distract myself. I have a writing commission that I needed to finish, but that was limited to off-hours because of the concentration required and I couldn't do it with the kids.

To do something, and hopefully get a dopamine hit, I dug up a project that I had started a few times but failed: a program to help me work with my Fedran projects. In specific, something that would let me update and add characters and volumes sources easily.

Along the way, I figured I'd include a few other items that have been bothering me. One of the biggest, which is needed for the fedran.com rewrite was to be able to check out the Git repositories in a single shot. That requires me to identify my stories, which is going to get more complicated since I recently (last year) decided that I was going to be purely one repository per story to handle versioning better.

According to my sources page, I have exactly eighty stories and novels. That means I need a central place to keep track of eighty repositories. I could maintain them in the website folder, but I thought tying it into my identifiers.json (formerly YAML) would be a good way of centralizing all the information about the sources in a single place.

Hence, I'm working on fedran-cli which is a CLI for working with the Fedran ecosystem. Since I recently started playing with Nix, I wanted to figure out a way of integrating fedran-cli into that whole mess without me needing to do some formal release process. Originally, I tried a C# version because I can't get C# to play with my new libraries in Nix. However, I could make it work in Rust so I banged up a basic program that lets me choose the existing character and volume for a given project.

(I was going to upload a GIF to this post, but I helpfully used the rm command instead of mv, so here is a link to the post with a video including alt text on my social page).

For a non-trivial Rust application, I was pretty happy with the results. I have a number of other commands I need to write for basic functionality and what I consider minimum viable product.

  • fedran-cli characters add to add new characters.
  • fedran-cli volumes add to add new volumes.
  • fedran-cli project sync to upload a subset of information to the identifiers file including the Git repository.
  • fedran-cli git clone --all to basically clone the eighty sources into the current directory based on the identifier file.

This is kind of an untethered project for me. The CLI doesn't really have an end, just an “end for now”. But, I think if I focus on getting to the git clone --all, I should have something that can help me.

Metadata

Categories:

Tags: