0.2.4 |
|
---|---|
0.2.3 |
|
0.2.2 |
|
#303 in #manage
29 downloads per month
57KB
1K
SLoC
Description
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.
Why the weird name?
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.
Dependencies:
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:
- cargo
- libgit2
- libssl
- libcrypto
- libgcc
- libm
- libc
Installation
If you are on Arch Linux or any derivatives I recommend installing it from the AUR or AUR-git.
Install rustup
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
Install gitwife from source
git clone https://gitlab.com/Teddy-Kun/gitwife/
cd gitwife
make
sudo make install
OR
Install gitwife using cargo
cargo install gitwife
Note: Cargo is the package manager for Rust and it gets installed along the compiler when you use rustup.
Usage
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
How does gitwife know how to build the repository?
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.
File Locations
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/".
Authors and acknowledgment
Currently I have made everything myself. If pull requests are opened I will agknowledge the persons here.
Owner: Paul Orzel
License
This Project is licensed under the GPL-V3.
Dependencies
~18–35MB
~579K SLoC