Crates.io | gitwife |
lib.rs | gitwife |
version | 0.2.4 |
source | src |
created_at | 2023-04-19 19:49:07.286289 |
updated_at | 2023-04-21 12:59:01.215655 |
description | A Tool to manage your installations from Git Repositories for you |
homepage | |
repository | https://gitlab.com/Teddy-Kun/gitwife |
max_upload_size | |
id | 843842 |
size | 136,702 |
Are you tired of manually controlling the version of programms not found in your distros repositories? This tool manages those for you. The goal is to make installing things from source more similar to installing things using a package manager.
I wanted to name it "gitman" but there are multiple other things named that including this python project. Since a different open-source project is already named that I gave up on the name but wanted to keep it short and simple. I came up with the name gitwife because this is a housewife for your programs installed from source.
Debian/Ubuntu and derivatives
sudo apt install libssl3 libssl-dev libc6 libgit2
Fedora
sudo dnf install openssl-devel libgcc glibc libgit2
For everyone else you will need the following:
If you are on Arch Linux or any derivatives I recommend installing it from the AUR or AUR-git.
Use this script to install rustup (if you haven't installed rust/cargo already). For some of you rust may be in your Repositories. You can use that as well. If it does not work please open an issue and use rustup in the meantime. Follow the on screen instructions.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://gitlab.com/Teddy-Kun/gitwife/
cd gitwife
make
sudo make install
OR
cargo install gitwife
Note: Cargo is the package manager for Rust and it gets installed along the compiler when you use rustup.
First clone a repository using one of the following 2 methods:
Cloning the main branch:
gitwife -C [URL]
OR
Cloning a release (tag):
For the latest tag created:
gitwife -T [URL]
For selecting a tag among all tags:
gitwife -I [URL]
Then build the repository with:
gitwife -m [NAME]
If you want to update all installed "packages" use the following:
gitwife -u
Uninstallation of "packages" is impossible as gitwife has no knowledge of what files changed in the process. However it is possible to tell it to stop managing a package using:
gitwife -f [NAME]
Uninstallation of the programm has to be done manually afterwards. Please refer to the original projects instructions for this process.
If you want to unfreeze a frozen repository use:
gitwife -g [NAME]
You can also combine the commands, i.e:
gitwife -C [URL] -m
gitwife -C [URL] -m -u
Note that in the case of "make" a [NAME] is not necessary if used in conjunction with "release" or "clone". It will automatically build the cloned repostiory
Other commands can be read using the help menu:
gitwife -h
Output:
Usage: gitwife [options]
Running without options aliases to 'gitwife -u'
Options:
-C, --clone [URL] Clones a repository
-T, --tag [URL] Clones a repositories latest tag/release if latest is
set to true in the config file
-I, --interactive [URL]
Clones a tag but asks which one instead of the latest
-u, --upgrade [REPO_NAME]
Upgrades all repositories/The chosen repository
-m, --make [NAME] Build the repository based on the make.gitwife file.
If you use this at the same time as '-C' or '-R'
[NAME] is not required.
-f, --freeze [NAME] gitwife ignores updates for [NAME]
-g, --unfreeze [NAME]
gitwife checks updates for [NAME]
-v, --version Outputs the current Version
-h, --help print this help menu
Thats the trick, it doesn't. When you use the "make" command a bash script is created and then consequently opened in your default text editor. The user is then asked to complete the file as necessary/as per the instructions of the project in question. The file is then saved for future usage.
The config (and make) files are located under your "XDG_CONFIG_HOME/gitwife/" and the cloned repositories under your "XDG_DATA_HOME/gitwife/" directories. The global default make file is located under "/usr/share/gitwife/default_make.gitwife" (this file does not exist if you install gitwife via cargo). The latest 2 log files are saved at "XDG_STATE_HOME/gitwife/".
Currently I have made everything myself. If pull requests are opened I will agknowledge the persons here.
Owner: Paul Orzel
This Project is licensed under the GPL-V3.