Coder Social home page Coder Social logo

gradle-properties-manager's People

Contributors

hak33m16 avatar owlexandeer avatar speleothem avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gradle-properties-manager's Issues

Support properties spec as defined in Java's property load method

Method: https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader)

Currently, we only support a very small subset of the spec outlined in the docs here. For a 1.0 release, I'd expect us to support the full spec in order to allow users to migrate any .properties files following it over to gpm

A nice utility feature we could provide on top of this:

  • warn users if they're using an unrecognized escape sequence, since this is almost always an error, and they intend to escape the backslash itself instead
The method does not treat a backslash character, \, before a non-valid escape character as an error; the backslash is silently dropped. For example, in a Java string the sequence "\z" would cause a compile time error. In contrast, this method silently drops the backslash. Therefore, this method treats the two character sequence "\b" as equivalent to the single character 'b'. 

Add npm run clean -- all

The npm run clean command could take a flag and prompt once to remove all gpm created file and directories.

Make initilization a more seamless process

  • Currently, you have to explicitly run gpm init before you can use the CLI. Since we're already having to check whether we're initialized or not, when any gpm command is run for the first time, we should prompt for initialization
  • Since people may be prompted unexpectedly when trying to use gpm for the first time, we should revamp the initialization function to be more robust, and account for seamlessly guiding users out of a state where gpm may be partially initialized

Improve command layout + README/usage docs

Currently, in order to use gpman, you must always specify gpman property or gpman profile before performing CRUD operations on a property/profile. Instead, we could improve gpman interaction by assuming users will want to operate on properties rather than profiles, since this is a much more common use case. This could give us a new command layout that'd look something like:

gpman set <property name>
gpman unset <property name>
gpman ls

gpman profile # lists current profile
gpman profile set <profile name>
gpman profile create <profile name>
gpman profile delete <profile name>
gpman profile ls

Whatever changes are made, it'd be nice to have better documentation in the README (currently it's just the output of the auto-created --help info commander gives us). Maybe a walkthrough section of managing multiple profiles with gpman with nice animations similar to this: https://github.com/romkatv/powerlevel10k#configuration-wizard (although honestly these frustrate the hell out of me because they don't pause, so even just pictures would be fine)

This could definitely relate to/be done in tandem with #16

@Owlexandeer does this accurately capture the recommendations you were making?

Convert all line endings to unix from Windows

Currently, line endings are all in Windows format (\r\n) since we develop on Windows machines (rather than just \n). However, after a WSL 2 upgrade, CLI utilities seem to fail to recognize the Node shebang we include at the start of our bin/ files (for gpm gpm property and gpm profile) which results in the following error if you attempt to run any of the gpm commands:

/usr/bin/env: ‘node\r’: No such file or directory

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.