gitwife

Crates.iogitwife
lib.rsgitwife
version0.2.4
sourcesrc
created_at2023-04-19 19:49:07.286289
updated_at2023-04-21 12:59:01.215655
descriptionA Tool to manage your installations from Git Repositories for you
homepage
repositoryhttps://gitlab.com/Teddy-Kun/gitwife
max_upload_size
id843842
size136,702
Paul (Teddy-Kun)

documentation

README

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:

  1. Cloning the main branch:

    gitwife -C [URL]

OR

  1. 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.

Commit count: 234

cargo fmt