Installs git repos onto your system and keeps them up-to-date

Gitfile

Installs git repos onto your system and keeps them up-to-date. It's a lightweight package manager for things that haven't been published to a real package manager. It's useful for installing and updating all the odd one-off things that only live on GitHub

Usage

List the repos you want installed in a YAML file called Gitfile

# ~/my/source/dir/Gitfile

- url: git://github.com/bradurani/bradrc.git
- url: https://github.com/thoughtbot/dotfiles.git
  path: thoughtbot/
- url: https://github.com/olivierverdier/zsh-git-prompt.git
  tag: v0.4
- url: https://github.com/tmux-plugins/tmux-battery.git
  path: ~/.tmux-plugins/
  branch: master

Run gitfile

cd ~/my/source/dir
gitfile

And your repos will be cloned or fetched

Configuration

The Gitfile must be in YAML format and the top level element must be an array. Options are

  • url - The Url (https or ssh) of the git repo
  • path - The path to install to (absolute or relative to current dir)
  • branch - The branch to install
  • tag - The tag to install
  • commit - The commit to install

You can only use one of tag, branch, and repo. If none are defined, then branch master is installed.

Options

gitfile - Installs from Gitfile in the current directory
gitfile <dir> - Installs using the Gitfile in the specified directory. Repos are installed relative to the specified directory, not the directory the command is run from

Installing

If you don't have Go, you must install it from golang.org. Then run:

go get github.com/bradurani/Gitfile/gitfile
go install github.com/bradurani/Gitfile/gitfile

Contributing

Feel feel free to open issues and pull requests. If you like this repo, spread the word!

Potential Improvements

  • --help flag
  • man pages
  • post_install: config option for running script
  • post_update: config option for running script
  • gitfile status command (show repo status)
  • brew, deb, arch, yum etc. packages
Owner
Brad Urani
Principle Software Engineer @ Procore
Brad Urani
Similar Resources

A TCP proxy used to expose services onto a tailscale network without root. Ideal for container environments.

tailscale-sidecar This is barely tested software, I don't guarantee it works but please make an issue if you use it and find a bug. Pull requests are

Dec 30, 2022

A CLI to replace your git commit command, so your git message can partially follow the Conventional Changelog ecosystem

A CLI to replace your git commit command, so your git message can partially follow the Conventional Changelog ecosystem

COMMIT CLI A CLI to replace your git commit command, so your git message can partially follow the Conventional Changelog ecosystem. And yes, it is bui

Feb 9, 2022

🛰️ Clone all your starred GitHub repos

solar 🛰️ Clone all your starred GitHub repos solar ❓ What is solar? 🚀 Install 🍎 macOS 🖥️ Linux and Windows 📟 Commands 🛰️ solar download 🙌 Contr

Dec 23, 2022

Spyware that keeps track of your girlfriend/wife or boyfriend/husband activities

Linda-bibi-Spyware Spyware that keeps track of your girlfriend/wife or boyfriend/husband activities.

Aug 3, 2021

This bot keeps information about your crypto wallet.

Telegram bot @crypto_wallet_gobot This bot writes to database information about your cryptocurrencies. Functions: add currency(example: btc) amount(ex

Jan 12, 2022

Newyearify - Update the copyright year in all of your GitHub repos

new_yearify Update the copyright year in all of your GitHub repositories. How do

Feb 6, 2022

Small utility package for stealing tokens from other processes and using them in current threads, or duplicating them and starting other processes

getsystem small utility for impersonating a user in the current thread or starting a new process with a duplicated token. must already be in a high in

Dec 24, 2022

Package iter provides generic, lazy iterators, functions for producing them from primitive types, as well as functions and methods for transforming and consuming them.

iter Package iter provides generic, lazy iterators, functions for producing them from primitive types, as well as functions and methods for transformi

Dec 16, 2022

A shell tool to create counting semaphores, acquire them and release them.

A shell tool to create counting semaphores, acquire them and release them. This is useful if you want to e.g. run no more than N out of M commands in parallel.

Oct 12, 2021

go program that installs and customizes ohmyzsh tmux vim via various plugins and other nice to haves

go program that installs and customizes ohmyzsh tmux vim via various plugins and other nice to haves

Pimp-My-Shell Table of Contents Pimp-My-Shell Install Usage About Resources Tmux Hotkeys VIM Hotkeys Adjusting Custom Aliases Mac Fix Terminal bind ke

Dec 22, 2022

Create production ready microservices mono repo pattern wired with Neo4j. Microservices for other languages and front end repos to be added as well in future.

Create production ready microservices mono repo pattern wired with Neo4j. Microservices for other languages and front end repos to be added as well in future.

Create Microservices MonoRepo in GO/Python Create a new production-ready project with backend (Golang), (Python) by running one CLI command. Focus on

Oct 26, 2022

The neph command installs, configures, and executes cloud setup software on a remote device using passwordless SSH with root privileges

The neph command installs, configures, and executes cloud setup software on a remote device using passwordless SSH with root privileges. Usage 1) nep

Dec 31, 2021

Alpie - A CLI tool for imaging and configuring Alpine Linux installs on Raspberry Pis

Alpie Alpie is a CLI tool aimed at making imaging and customizing installs of Al

Jan 22, 2022

Alpie - A CLI tool for imaging and configuring Alpine Linux installs on Raspberry Pis

Alpie is a CLI tool aimed at making imaging and customizing installs of Alpine Linux onto Raspberry Pis simpler.

Jan 22, 2022

Keeps track of Steam Deck Verifications. On first run, it reports all games with their respective Steam Deck Verification status. On subsequent runs, the tool will report newly tested and updated games.

Keeps track of Steam Deck Verifications. On first run, it reports all games with their respective Steam Deck Verification status. On subsequent runs, the tool will report newly tested and updated games.

Feb 2, 2022

Wrapper around bufcli to make it do cross-repo compiles for private repos and use full paths.

Wrapper around bufcli to make it do cross-repo compiles for private repos and use full paths.

Bufme A tool for compiling protos with full directory paths and cross repo compiles. Introduction Protocol buffers rock, but protoc should die in a fi

Feb 5, 2022

Querycrate - A simple library that loads and keeps SQL queries from files

QueryCrate A simple library for loading & getting string queries from files. How

Feb 15, 2022

Authentication service that keeps you in control without forcing you to be an expert in web security.

Authentication service that keeps you in control without forcing you to be an expert in web security.

Authentication service that keeps you in control without forcing you to be an expert in web security.

Jan 1, 2023

A terraform plugin that no-one should use that keeps pacman packages synced to a configured list

A provider for pacman packages Manages installation of pacman packages, theoretically works on most places where pacman is installed. Danger notice Wh

Nov 4, 2021
Package git provides an incomplete pure Go implementation of Git core methods.

git Package git provides an incomplete pure Go implementation of Git core methods. Example Code: store := git.TempStore() defer os.RemoveAll(string(st

Oct 6, 2022
Tool to manage multiple git repositories

go-many-git Tool to manage multiple git repositories Requirements Proper go installation with GOPATH set git >= 1.8.5 Installation go get -u github.co

Aug 27, 2022
Git folder digger, I'm sure it's worthwhile stuff.
Git folder digger, I'm sure it's worthwhile stuff.

Gigger Git folder digger, I'm sure it's worthwhile stuff. Installation Download a prebuilt binary from releases page. or If you have recent go compile

Nov 9, 2022
manipulate and inspect VCS repositories in Go

go-vcs - manipulate and inspect VCS repositories go-vcs is a library for manipulating and inspecting VCS repositories in Go. It currently supports Git

Nov 27, 2022
Installs git repos onto your system and keeps them up-to-date

Gitfile Installs git repos onto your system and keeps them up-to-date. It's a lightweight package manager for things that haven't been published to a

Jan 16, 2021
This process installs onto kubernetes cluster(s) and provisions workloads designated by the uffizzi interface

Uffizzi Cloud Resource Controller This application connects to a Kubernetes (k8s) Cluster to provision Uffizzi users' workloads on their behalf. While

Dec 14, 2022
Watchtower for Git: automatically keep local Git repositories up to date with their remotes

CrowsNest Watchtower for Git: automatically keep local Git repositories up to date with their remotes. Configuration Flags --run-once or -r: Normally

Oct 30, 2022
Simple git hooks written in go that installs globally to your machine

Go-hooks Simple git hooks written in go that installs globally to your machine Install curl -fsSL

Oct 19, 2022
This is a command that simply prints "ok" onto your screen whenever you run the "ok" command
This is a command that simply prints

ok This is a command that simply prints "ok" onto your screen whenever you run the ok command Installation (Linux) Download the latest release and sud

Sep 16, 2022
A pay later service to allow our users to buy goods from a merchant now, and then allow them to pay for those goods at a later date.

simple-pay-later A pay later service to allow our users to buy goods from a merchant now, and then allow them to pay for those goods at a later date.

Dec 11, 2021