Shōjō
LaTex package manager
Welcome to Fazendaaa's Shōjō. This is version 0.0.0!
Made with:
➤ Ideia
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
➤ Why?
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:
➤ Components
What you can do with Shojo:
install
To install all packages from a Shojo project:
shojo install
init
To initialize a new Shojo project:
shojo init
add
To add packages to this project:
shojo add draftwatermark lastpage tabu ...
rm
To remove packages from this project:
shojo rm draftwatermark lastpage tabu ...
repo
To change the package's repository:
shojo repo https://mirror.ctan.org/systems/texlive/tlnet
➤ Installing
Arch Linux/Manjaro
yay -S shojo
or:
pamac install shojo
Go
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.
Not loading
Probably missing the following:
export GOPATH="$HOME/go/"
export PATH="$PATH:$GOPATH/bin/"
Binary
Take a look first at zyedidia/eget
curl https://zyedidia.github.io/eget.sh | sh
./eget Fazendaaa/Shojo
mv Shojo $HOME/.local/bin/shojo
Docker
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
➤ Uninstalling
Arch Linux/Manjaro
yay -R shojo
Go
rm $GOPATH/bin/Shojo
Binary
rm $HOME/.local/bin/shojo
Docker
docker rmi --force fazenda/shojo-latex
➤ CFD
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
➤ Author
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.
➤ Contributing
Check more about this in CONTRIBUTING.md. Here we have a list of some of our contributors:
➤ Contributors
➤ TODO
Read TODO.md file.
➤ References
Docs
BlogPosts
➤ License
Licensed under AGPL-3.0.