Giter VIP home page Giter VIP logo

gee's Introduction

gee

CLI repository manager and automation tool written in rust. Gee Screenshot

Overview

If you like temporarily cloning repositories, then Gee is the tool for you! It allows you to clone any repository on github by running:

$ gee clone <url>

Gee will then download the repository into ~/.gee/tmp/. Gee clones them into this directory, in order to implement a temporary repository queue. It allows the user to have a configurable maximum number of repositories they would like Gee to store. And when the user clones enough repositories on the queue to go over that limit, Gee will automatically remove the oldest repository in order to pop it off of the queue. It also allows you the ability to mass clone all of the repositories within a github organization (if you don't specify the max it will clone up to 500). You can run the command:

$ gee mass <organization> [wildcard] [max]

With the organization being the name of the github organization, and the wildcard being any string. The wildcard is optional, but if you include it, Gee will only clone the repositories within the organization that contain that wildcard. In order to use this functionality, you will need the github_token key set in your .geerc file. See the prerequisites section for more information. You can also run the command:

$ gee list

in order to see all of your repositories you have currently installed using gee, as well as it's index in the repository queue. In order to open a repository you have cloned with gee, you can run the command:

$ gee open <index>

Gee will then create a symbolic link of the desired repository in your current working directory. When you decide you are done using that repository, you can run the command:

$ gee done

in order to remove the symbolic link, and close the opened repository. You can also run the command:

$ gee keep <index> [path]

in order to copy a repository out of Gee's queue, if you decide you would like to keep it. If you don't specify the path parameter, it will assume the user's currently working directory. You can also run the command:

$ gee help

in order to receive more information about the functionality of Gee.

Configuration

By default, Gee will assume the maximum number of repositories to store as 5. You can configure this by adding a .geerc file in your home directory. And for example, if you would like to change the maximum number to 9, add this line in your .geerc file:

queue_size 9

Prerequisites

  • You will need to use ssh key authentication with github in order for Gee to work.
  • If you would like to run gee mass, you will also need a personal access token (with at least read-only access to your organization's repositories) in your .geerc file. Like so:
github_token <key goes here>

Installation

This is available for you macintosh user's as a homebrew tap. In order to install run:

$ brew tap human37/gee
  brew install gee

You can also compile from source and install using cargo. First clone the repository, and then within the repository run:

$ cargo install --path .

gee's People

Contributors

human37 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gee's Issues

Make more elegant use of the Result type

I am currently doing lots of error handling, and one method to clean it up would be to be more consistent in my use of the "Result" type, as I can just pass errors up the call stack, and I can just call functions that might error out using the "?" syntax.

---------------->><<<><><<>><<<::::RUST><>

       /$$                                                                                              /$$                               /$$                                       /$$                               /$$
      | $$                                                                                             | $$                              | $$                                      | $$                              | $$

/$$$$$$$| $$ /$$$$$$ /$$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$
/$$/| $$ |____ $$ /$$//$$/ /$$ $$ /$$ $$ /$$_ $$ /$$__ $$| $$ /$$/|_ $$/ /$$__ $$| $$__ $$ /$$__ $$ /$$_/ /$$ $$ /$$ $$| $$/ |___ $$ /$$__ $$ /$$__ $$
| $$ | $$ /$$$$$$$| $$$$$$| $$$$$$ | $$ \ $$| $$$$$$$$| $$$$$$$$ | $$$$$$$$ \ $$$$/ | $$ | $$$$$$$$| $$ \ $$| $$ | $$| $$$$$$ | $$ _/| $$$$$$$$ | $$ /$$$$$$$| $$ _/| $$ | $$
| $$ | $$ /$$__ $$ ____ $$____ $$ | $$ | $$| $$/| $$/ | $$/ >$$ $$ | $$ /$$| $$/| $$ | $$| $$ | $$ ____ $$ | $$ | $$/ | $$ /$$ /$$ $$| $$ | $$ | $$
| $$$$$$$| $$| $$$$$$$ /$$$$$$$//$$$$$$$/ | $$$$$$$| $$$$$$$| $$$$$$$ | $$$$$$$ /$$/\ $$ | $$$$/| $$$$$$$| $$ | $$| $$$$$$$ /$$$$$$$/ | $$ | $$$$$$$ | $$$$/| $$$$$$$| $$ | $$$$$$$
_
/|/ _/|/|/ _ $$ _/ _/ _/|/ _/ _/ _/|/ |/ _/|/ |/ _/ _/ _/|/ _/
/$$ \ $$
| $$$$$$/
_
___/

Better Gee list functionality

I would like the gee list command to show me how many free slots I have left, as well as the maximum number of repositories I can have in my queue.

gEE

                                                 
                                                 
              __.....__           __.....__      
  .--./)  .-''         '.     .-''         '.    
 /.''\\  /     .-''"'-.  `.  /     .-''"'-.  `.  
| |  | |/     /________\   \/     /________\   \ 
 \`-' / |                  ||                  | 
 /("'`  \    .-------------'\    .-------------' 
 \ '---. \    '-.____...---. \    '-.____...---. 
  /'""'.\ `.             .'   `.             .'  
 ||     ||  `''-...... -'       `''-...... -'    
 \'. __//                                        
  `'---'                                         

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.