devmode 0.1.3

Devmode is a project management utility for developers.
devmode-0.1.3 is not a library.
Visit the last successful build: devmode-0.4.1

Dev(mode) is a project management utility for developers.

USAGE:
    dmd [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    clone     Clones a utils repository in a specific folder structure.
    config    Sets options for configuration.
    fork      Clone repo and set upstream to your fork
    help      Prints this message or the help of the given subcommand(s)
    open      Opens a project on your selected text editor.

Installation

Cargo

cargo install dmd

Configuration

The config or cf command will help you configure dmd to your liking.

Text Editor

You can set your favorite text editor running:

dmd config -e --editor

Git Host

You can set your Git host running:

dmd config -h --host

Git User

You can set your Git user running:

dmd config -o --owner

Configure everything

You can configure everything running:

dmd config -a --all

Show config

You can show your current config running:

dmd config -s --show

Current settings:
Host: GitHub
Owner: edfloreshz
Editor: Visual Studio Code

Clone a repo

Dev(mode) facilitates repository storage and organization in your filesystem.

How it works

When you clone a repository it will be stored to your filesystem using a specific folder structure.

You can also use dmd cl

$HOME
└── Developer
    └── host
        └── owner
            └── repo

This makes it easier for you to find repositories and allows dmd to open them by just specifying the name of the project.

Usage

USAGE:
    dmd clone <args>...

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

ARGS:
    <args>...    Provide either a Git <url> or a Git <host> <owner> <repo>.

Clone by URL

dmd clone https://github.com/edfloreshz/devmode

Clone without URL

dmd clone <host> <owner> <repository>

Clone with config.toml

Running dmd config asks you to specify your Git host and user, now just type one of your repos.

dmd clone <repo>

You can also clone multiple of your own repositories while using this option.

dmd clone <repo1> <repo2>

Just clone

You can clone without specifying the arguments.

dmd clone

You will be presented with the following setup:

ᐅ  dmd clone

? Choose your Git host: ›
❯ GitHub
  GitLab
? Git username: › user
? Git repo name: › repo

Cloning edfloreshz/blog from GitHub...

Clone and set upstream (fork)

Clone a repo and set upstream, ideal for forks, when you clone a repository it will be stored to your filesystem using a specific folder structure. Similar to how dmd cl works.

Usage

    dmd fork --upstream <upstream> [args]...

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -u, --upstream <upstream>    Set the upstream to your fork <url>

ARGS:
    <args>...    Provide either a Git <url> or a Git <host> <owner> <repo>.

Clone with url

Use the --upstream or -u to set the upstream repository, then specify the repository that you wish to modify.

dmd fork --upstream https://github.com/user/repo https://github.com/your-user/your-repo-fork

Clone with upstream URL and remaining parameters.

dmd fk github <provider> <user> <forked-repo> -u <url>

Just clone with the upstream URL

This will launch a clone setup and guide you throught the cloning process.

dmd fork -u https://github.com/user/repo
? Choose your Git host: ›
❯ GitHub
  GitLab
? Git username: › your-user
? Git repo name: › your-repo-fork

Cloning your-user/your-repo-fork from GitHub...
Setting https://github.com/user/repo how upstream

Open a project

Opens a project with your selected text editor.

You can also use dmd o

USAGE:
    dmd open <project>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

ARGS:
    <project>    Provide a project name.

You can open a project with the following command:

dmd open <project>

If two or more projects with the same name are found, you will have to choose which one to open.

Proposals

If you have a proposal for a new feature, open a new issue.