Devmode is a project management utility for developers.

Overview

Dev(mode)

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

USAGE:
    devmode [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.
    help      Prints this message or the help of the given subcommand(s)
    open      Opens a project on your selected text editor.

Installation

Arch Linux

paru -S devmode-git

Cargo

cargo install devmode

Configuration

The config command will help you configure devmode to your liking.

Text Editor

You can set your favorite text editor running:

devmode config -e | devmode config --editor

Git Host

You can set your Git host running:

devmode config -h | devmode config --host

Git User

You can set your Git user running:

devmode config -o | devmode config --owner

Configure everything

You can configure everything running:

devmode config -a | devmode config --all

Show config

You can show your current config running:

devmode config -s | devmode config --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.

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

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

Usage

USAGE:
    devmode clone 
   
    ...

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

ARGS:
    
    
     ...    Provide either a Git 
     
       or a Git 
       
        
        
         . 
        
       
      
     
    
   

Clone by URL

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

Clone without URL

devmode clone <host> <owner> <repository>

Clone with config.toml

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

devmode clone <repo>

Just clone

You can clone without specifying the arguments.

devmode clone

You will be presented with the following setup:

ᐅ  devmode clone

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

Cloning edfloreshz/blog from GitHub...

Open a project

Opens a project with your selected text editor.

USAGE:
    devmode open 
   
    

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

ARGS:
    
    
         Provide a project name.

    
   

You can open a project with the following command:

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

Comments
  • Man page

    Man page

    In this pull requests contain with the man pages for dmd and dmdt Is necessary sphinx for man page of dmdt. Run:

    user@pc-pro~/devmode$cd dmdt/man-pages
    user@pc-pro~/devmode/dmdt/man-pages$make man
    user@pc-pro~/devmode/dmdt/man-pages$# for view
    user@pc-pro~/devmode/dmdt/man-pages$man ./_build/man/devmode.1
    

    resolve #11

    opened by Kedap 7
  • Workspaces

    Workspaces

    Describe the solution you'd like Devmode should be able to create workspaces in which to store repositories. For example, dm clone <repo> -w work will clone the repository to /home/user/Developer/GitHub/user/work/<repo>

    enhancement help wanted good first issue 
    opened by edfloreshz 3
  • Make a way to make many editors and hosts [FEATURE]

    Make a way to make many editors and hosts [FEATURE]

    Some lines the code as the example of the editors: https://github.com/edfloreshz/devmode/blob/62d2c8981297a67f82348129c36d1a41412329c8/src/models/editor.rs#L15 There is only a list of editors available, it will be an impossible task to have the registration of all text editors available and variations of these. As well as git hosts, we can even create a local server. https://github.com/edfloreshz/devmode/blob/62d2c8981297a67f82348129c36d1a41412329c8/src/models/logic.rs#L69

    I propose that we only ask the user for the command that opens their editor, example:

    user@pc-user:$ devmode config -e
    ? Type yor editor command (example: vscode = code, neovim = nvim...)
    > emacs
    

    and for git host:

    user@pc-user:$ devmode clone server-pro-local user project-x

    Assuming that the protocol is https we can assume that the host is https://server-pro-local/user/project-x.git

    opened by Kedap 3
  • Use proxies to clone repositories

    Use proxies to clone repositories

    Describe the solution you'd like Be able to use proxies to clone repositories or obtain upstream information using proxies. This feature is to be able to obtain information depending on your locality or use services such as TOR

    Describe alternatives you've considered Use tools like proxychains

    opened by Kedap 2
  • Dont open the project [BUG]

    Dont open the project [BUG]

    I run:

    devmode open hello-project
    

    and the output is:

    user@pc-pro:$ devmode open hello-project
    Opening hello-project
    error: No such file or directory (os error 2)
    

    The steps complete:

    user@pc-pro:$ devmode clone   
    ✔ Choose your Git host: · GitHub
    ✔ Git username: · myuser
    ✔ Git repo name: · hello-project
    Cloning myuser/hello-project from GitHub...
    hello-project cloned successfully to /home/user/Developer/GitHub/myuser/hello-project
    
    user@pc-pro:$ devmode open hello-project
    Opening hello-project
    error: No such file or directory (os error 2)
    
    opened by Kedap 2
  • dm open not working on windows.

    dm open not working on windows.

    Describe the bug after a setup and the right enviroment variable, dm open is not working as expected and is displaying an error message.

    To Reproduce Steps to reproduce the behavior:

    1. Use devmode to clone a project.
    2. Use dm cl [Project
    3. Scroll down to '....'
    4. See error

    Expected behavior Since we have code set up to open projects and Im selecting VSCode as default editor it should open the cloned repo selected when the name is available and on the path.

    Screenshots image

    Desktop (please complete the following information):

    • OS: Win 11 , VS Code and Windows terminal.

    Additional context Project was teste on Mac/Linux and works fine. W11 is the OS used. Code command is set up on eviroment viariables. The project was rightly cloned on the path.

    opened by Demetriox 1
  • feature request: setup repo for open source development

    feature request: setup repo for open source development

    The idea: setting up a local repository is a repetitive task that consists of cloning your fork and adding the original as upstream. Perhaps devmode could do this for you instead and save you like 30 seconds of your life.

    enhancement help wanted good first issue 
    opened by categulario 1
  • deleting Cargo.lock from .gitignore and creating one

    deleting Cargo.lock from .gitignore and creating one

    follow the documentation: Remove Cargo.lock from gitignore if creating an executable, leave it for libraries more information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html

    opened by Kedap 1
  • Pull changes for any project from anywhere

    Pull changes for any project from anywhere

    Is your feature request related to a problem? Please describe. Since we are using devmode and not github to manage the project using devmode for simple tasks from everywhere with out the need to open the project from the specific folder, one of the cool features of devmode is that is a manager of projects from everywhere on the deskt and on any popular system [ Mac / Linux / Windows ].

    Describe the solution you'd like I would like to add a command in wich you can upgrade or retrive information from a project using only the command dm update [project]

    Describe alternatives you've considered None at all

    Additional context Since devmode is a tool to have super powers all over the system to open and manage your projects why not do it in the right way?

    opened by Demetriox 0
  • Show information about a repository or workspace

    Show information about a repository or workspace

    Is your feature request related to a problem? Please describe. Not related

    Describe the solution you'd like I would like to have information of where is the path of the repository Im targeting.

    Describe alternatives you've considered

    • Display information of the current repo in the cli.
    • Display information of the workspace just right after cloned//opened.

    Additional context currently there is no information of where the repo is cloned and if I want to store it on a different folder.

    enhancement help wanted good first issue hacktoberfest 
    opened by Demetriox 0
  • Fix clap deprecation warning

    Fix clap deprecation warning

    When it was compiling I got:

    warning: use of deprecated variant `clap::AppSettings::ArgRequiredElseHelp`: Replaced with `Command::arg_required_else_help` and `Command::is_arg_required_else_help_set`
      --> src/cli.rs:21:29
       |
    21 | #[clap(setting(AppSettings::ArgRequiredElseHelp))]
       |                             ^^^^^^^^^^^^^^^^^^^
       |
       = note: `#[warn(deprecated)]` on by default
    
    warning: `devmode` (bin "dm") generated 1 warning
    

    This is because ArgRequiredElseHelp is deprecated as it says in the warning. As a solution, arg_required_else_help is used.

    PS: Rustfmt was also applied

    opened by Kedap 0
  • Show user repos on cloning

    Show user repos on cloning

    Is your feature request related to a problem? Please describe. Being able to list all the repositories proving the username.

    Describe the solution you'd like Show all the repositories inside less.

    Describe alternatives you've considered None

    Additional context None

    enhancement help wanted good first issue hacktoberfest 
    opened by edfloreshz 0
  • Option to create project

    Option to create project

    An option like: devmode create project-name

    Would be great asking if it will be done with git, vsc or not, as well as if it is a javascript project, which starts with npm, ruby with bundle, rust with cargo and with different languages or at least with the most popular.

    enhancement good first issue hacktoberfest 
    opened by Kedap 3
Releases(v0.3.0)
  • v0.3.0(Jul 24, 2022)

    What's Changed

    • Fix clap deprecation warning by @Kedap in https://github.com/edfloreshz/devmode/pull/17
    • clone multiple repositories by @Kedap in https://github.com/edfloreshz/devmode/pull/19

    New features

    • Work spaces were added, it lets you to manage your projects even more by storing them in sub-folders inside the owner's folder.

    Full Changelog: https://github.com/edfloreshz/devmode/commits/v0.3.0

    Source code(tar.gz)
    Source code(zip)
    v0.3.0-x86_64-linux.zip(9.51 MB)
Owner
Eduardo Flores
I’m just a software engineer.
Eduardo Flores
Auto Fan Management Utility in Linux Systems for Monster Laptops

Auto Fan Management Utility in Linux Systems for Monster Laptops Monster Laptoplar için Linux Sistemlerde Oto Fan Yönetimi TR Monster laptoplar gömülü

null 2 Aug 22, 2022
A cli utility written in Rust that allows fetching all the labels of a project, save those as a YAML file

A cli utility written in Rust that allows fetching all the labels of a project, save those as a YAML file that you can easily edit or save as backup and apply a saved preset to new repositories.

Chevdor 4 May 5, 2022
Cakecutter - a utility tool that quickly sets up a project from a pre-built template

Cakecutter Create projects from pre-built cakes (templates)! Supports files, packages, content, running commands and more! Cakecutter is a utility too

Dhravya Shah 10 Jun 22, 2022
An opinionated, practical color management library for games and graphics.

colstodian An opinionated color management library built on top of kolor. Introduction colstodian is a practical color management library for games an

Gray Olson 27 Dec 7, 2022
Stacked branch management for Git

git-stack Stacked branch management for Git Dual-licensed under MIT or Apache 2.0 Documentation About Installation Getting Started Reference FAQ Compa

Ed Page 1 Jul 18, 2022
A lightning fast state management module for Yew.

yewv A lightning fast state management module for Yew built with performance and simplicity as a first priority. Who is this for? If you wish to use a

null 7 Dec 8, 2022
Original Version Management System based on Git

nss (noshishi) Original Version Management System based on Git. Learning git and rust for good developer. Usage Install cargo install nssi how to nss

nopeNoshishi 4 Feb 13, 2023
A small utility for tracking the change in opening and closing of issues in a GitHub repo

A small utility for tracking the change in opening and closing of issues in a GitHub repo. This tool can be used to build visualizations for issue triage over time with the hope of motivating closing more issues than are opened.

Ryan Levick 12 Sep 29, 2021
mdTranslation is a utility to prepare multi-lingual Markdown documents.

mdTranslation is a utility to prepare multi-lingual Markdown documents. There's also a mdBook preprocessor called mdbook-translation for

Charles Lew 15 Dec 26, 2022
ᎩᎦᎨᎢ (IPA: [gigagei]) is a random quote fetching console utility. Written in Rust.

gigagei ᎩᎦᎨᎢ (IPA: [gigagei]) is a random quote fetching console utility. Written in Rust. Installing Use latest pre-built binary from releases Buildi

veleth 10 Jun 17, 2022
Utility library to work with tuples.

Utility library to work with tuples.

René Kijewski 9 Nov 30, 2022
A fast, multi-threaded line counting utility written in Rust.

xloc A fast, multi-threaded line counting utility written in Rust. What is xloc A drop in replacement for bash's wc -l. Your project has x lines of co

null 1 Nov 15, 2021
Provides utility functions to perform a graceful shutdown on an tokio-rs based service

tokio-graceful-shutdown IMPORTANT: This crate is in an early stage and not ready for production. This crate provides utility functions to perform a gr

null 61 Jan 8, 2023
Progmem utility for the AVR architecture

avr-progmem Progmem utilities for the AVR architectures. This crate provides unsafe utilities for working with data stored in the program memory of an

null 15 Nov 20, 2022
Emoji-printer - Utility to convert strings with emoji shortcodes to strings with the emoji unicode

Emoji Printer Intro Utility to convert strings with emoji shortcodes (:sushi:) to strings with the emoji unicode ( ?? ) Install cargo add emoji-printe

Kyle Scully 2 Dec 30, 2021
Rs.aws-login - A command line utility to simplify logging into AWS services.

aws-login A command line utility to simplify logging into AWS accounts and services. $ aws-login use ? Please select a profile to use: › ❯ dev-read

Kevin Herrera 11 Oct 30, 2022
A rust-based version of the popular dnsgen python utility

ripgen A rust-based version of the popular dnsgen python utility. ripgen is split into two main parts: ripgen: A CLI utility that calls into ripgen_li

resync 198 Jan 2, 2023
Tons of extension utility functions for Rust

LazyExt Tons of extension utility functions for Rust. English | 简体中文 Status Name Status Crate Documents Introduction lazyext-slice Alpha Thousands of

Al Liu 2 Dec 5, 2022
Lupus is a utility to administer backups with future integration with rsync

Lupus is a utility to administer backups with future integration with rsync. Many other features are either included or planned such as chat bridges using rcon and or parsing the pipe output from programs/games.

null 3 Sep 19, 2022