Code Monkey home page Code Monkey logo

gocart's People

Contributors

bendavidaaron avatar

Watchers

 avatar  avatar

gocart's Issues

install dotfiles from a `git clone`

As a gocart rider
I would like to be able to clone my dotfiles on to a new machine and use gocart to populate my system with symlinks to the newly-cloned copy of my dotfile repo
So that I can swiftly and elegantly make myself at home on a new computer

Store Currently Active Platform separately from Config Symlink Mapping

Currently, gocart.json stores both the list of known platforms (.platforms) and the currently active platform (.activePlatform). This is nonideal because the active platform will need to be checked into version control as part of the gocart.json file in use, and therefore synced across systems.
Storing the activePlatform name across invocations should be host-specific, and be kept in a seperate file so it can be .gitignored.

version .gocart.json schema with package

As a gocart user
I would like to be able to check if my .gocart.json file in a given repo is compatible with my installed version of gocart
so that I don't break my configs during or because of a gocart update

Remove Dependencies on GoCartState in Cobra Command Initialization

Currently, if a .gocart.json file isn't available the gocart will throw lots of ugly error messages during command initialization.

Commands that accept --name --path or --platform args currently read values from .gocart.json to get default values.
They should pass nil as default values, which can be populated at execution time instead.

change schema to accomodate multiple path-specific platforms per config file

Currently each config is stored as an object with a Name, Path, and Platform. This suffices for users who only run one set of configurations on one system, but does not accommodate users seeking to share configurations for a single app across multiple platforms (say using the same .vimrc on both Windows and Linux).

I propose changing the data schema to associate paths and platforms, per-configuration.

Now:

{
  "Configs": {
    "bonk": {
      "Name": "bonk",
      "Path": "/Users/me/src/gocart/fake-configs/.bonkrc",
      "Platform": "MacOS"
    }
  },
  "Platform": "MacOS",
  "Path": "/Users/me/src/gocart/.gocart.json"
}

Proposed:

{
   "Configs":{
      "bonk":{
         "Name":"bonk",
         "Paths":{
            "MacOS":"/Users/me/src/gocart/fake-configs/.bonkrc"
         }
      },
      "Platform":"MacOS",
      "Path":"/Users/me/src/gocart/.gocart.json"
   }
}

This will allow platform specific execution of gocart install after cloning your configuration to a new machine.

./internal/tasks.go sucks

The internal/tasks module is mixing layers of abstraction. It was an ugly mistake and I hate it. Delet This!

Use nested subcommands

As a command line power user
I would like to use gocart verb noun -a args syntax to interact with Gocart
So that I can use the kubectl-like syntax I'm familiar with

use stdlib logging

As a gocart user
I would like to only see the tasks I asked for instead of all traces printed to stdout
so that my terminal isn't polluted with noise

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.