osoy 0.2.3

Command-line git repository manager.
osoy-0.2.3 is not a library.
Visit the last successful build: osoy-0.5.1

Command-line git repository manager. Inspired by vim-plug, yarn and pacman.

Table of contents

Compatibility

This software relies on extended file metadata to determine whether a file is executable.

Dependencies

git, cargo & make are required for the application to fully function.

cargo is required to build the executable.

Usage

osoy [operator] [flags]

Operators

c|clone   <query>...      clone packages from GitHub, GitLab or Bitbucket
f|fork    <query> <fork>  clone a package overwriting remote origin to fork
y|symlink [query]...      make packages' executables available in PATH
l|list    [query]...      list (all) packages
s|status  [query]...      show status of (all) packages
b|build   [query]...      build (all) packages that have a make or cargo file
r|remove  <query>...      remove packages
m|move    <query> <dest>  rename package's remote origin and relocate it's folder
n|new     <query>...      create new empty packages
u|update  [query]...      update (all) packages

dir       <query>         print package's directory path
read      <query>         view package's README file
license   <query>         view package's LICENSE file

Query syntax

<[[domain/]author/]package> or <link>

Default domain is github.com & default author is <package>.

Flags

-c --color      enable colors
-q --quiet      show less detailed output
-h --help       show usage
-v --version    show version

-f --force      force prompts
-y --defaults   continue with prompt defaults
-n --deny       deny prompts

-o --option <>  specify option to run make with

Installation

Clone osoy git repository.

mkdir -p ~/.osoy/packages/github.com/osoy &&
  cd ~/.osoy/packages/github.com/osoy &&
  git clone https://github.com/osoy/osoy

Create a symbolic link for osoy executable.

mkdir -p ~/.osoy/bin &&
  ln -s ~/.osoy/packages/github.com/osoy/osoy/osoy ~/.osoy/bin/osoy

Build the executable.

cd ~/.osoy/packages/github.com/osoy/osoy && make

Add osoy bin directory ~/.osoy/bin to your system path.

PATH="$PATH:$HOME/.osoy/bin"

To make it permanent add the previous line to your shell profile — ~/.bash_profile, ~/.zprofile, ~/.profile, etc. More at computerhope, askubuntu or google.

Configuration

You can configure osoy by making an alias. For example, next line will enable colors by default

alias osoy='osoy -c'

Following line will make it easier to navigate to package's directory

oycd() { cd "$(osoy dir "$*")"; }

File structure

~/.osoy/
├── bin/
│   ├── <symlink>  ->  <executable>
│   :   ...
│
└── packages/
    ├── <domain>/
    │   :   ...
    │
    ├── <domain>/
    :   ├── <package>/
        │   :   ...
        │
        ├── <author>/
        │   :   ...
        │
        ├── <author>/
        :   ├── <package>/
            │   :   ...
            │
            ├── <package>/
            :   ├── <modules>/
                ├── <module>
                ├── <executable>
                :   ...

Todo

  • option flag for make
  • fork operator
  • list current branches
  • deny flag to deny all prompts
  • chain make prompt to update, clone & fork
  • quiet flag for less output
  • visual progress for update, clone & fork
  • asynchronous updating & cloning
  • docs website