LaTex package manager
Welcome to Fazendaaa's Shōjō. This is version 0.0.0!
Made with:
Currently, in the company that I work for we have a CLI (Command Line Interface) made in Python called estat
that you can read more about it right here. But one of its features is handeling LaTex packages to each of our projects.
The main ideia is that you have a shojo.yaml
like the following describing the required packages needed for the project:
packages:
- name: multirow
revision: 58396
- name: wrapfig
revision: 61719
- name: lastpage
revision: 60414
- name: hyphenat
revision: 15878
- name: hyphen-portuguese
revision: 58609
- name: babel-portuges
revision: 59883
- name: fancyhdr
revision: 57672
- name: tabu
revision: 61719
- name: varwidth
revision: 24104
As many that use LaTex in a daily bases know, having to install all packages when you only need a few at most can be troublesome to say at least, besides that:
- Having to maintain an old project
- Many people using a plethora of editors
- Building in a CI/CD environment
- Time consuming
- Updates
- etc.
That's why Shojo was born, to help maintain LaTex projects dependencies in a friendly manner inspired by other tools like:
What you can do with Shojo:
To install all packages from a Shojo project:
shojo install
To initialize a new Shojo project:
shojo init
To add packages to this project:
shojo add draftwatermark lastpage tabu ...
To remove packages from this project:
shojo rm draftwatermark lastpage tabu ...
To change the package's repository:
shojo repo https://mirror.ctan.org/systems/texlive/tlnet
yay -S shojo
or:
pamac install shojo
go install github.com/Fazendaaa/Shojo@latest
In case you choose this route, just remember to use Shojo
instead of shojo
while using the command.
Probably missing the following:
export GOPATH="$HOME/go/"
export PATH="$PATH:$GOPATH/bin/"
Take a look first at zyedidia/eget
curl https://zyedidia.github.io/eget.sh | sh
./eget Fazendaaa/Shojo
mv Shojo $HOME/.local/bin/shojo
You don't need to install Go to run this tool, just Docker. And to do so to give it a try, you can do it just by running the following line in your terminal:
alias shojo='docker run -it --volume ${PWD}:${PWD} --workdir ${PWD} fazenda/shojo-latex'
And then running the following to check whether or not is working properly:
shojo --help
After that you can run the following just to fell free to run the following:
shojo init .
shojo add lastpage
yay -R shojo
rm $GOPATH/bin/Shojo
rm $HOME/.local/bin/shojo
docker rmi --force fazenda/shojo-latex
As estat
have grown so much and making it available as FOSS (Free and open-source software) trough the CFD initiative. That's was always the idea but the project still in development and not having a properly defined scope, I decided to break its main features in other projects:
- Succubus: universal package manager based on cloud-native
- Jinn: universal project manager built to expand Succubus capabilities
- Baba Yaga: universal cloud-native manager built to expand Jinn and Succubus capabilities
- Wendigo: universal project translator from cloud-native projects to other infra technologies
- Shōjō: LaTex package manager
- Hellhound: VSCode extension to integrate Jinn recipes
- Crocotta: SOC assisted guider
Only me because the aforementioned project was implemented by yours only. By knowing each line of that code wrote doing the port would be more easily done this way.
Check more about this in CONTRIBUTING.md. Here we have a list of some of our contributors:
Fazendaaa | You? |
Read TODO.md file.
- Set Indentation on New Golang YAML v3 Library
- How to Access Interface Fields in Golang?
- Build CI/CD pipelines in Go with github actions and Docker
- GitHub Action for release your Go projects as fast and easily as possible
- How to test your Go code with Github actions
Licensed under AGPL-3.0.