guumaster / hostctl

Your dev tool to manage /etc/hosts like a pro!

Home Page:http://guumaster.github.io/hostctl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Profiles as default argument in commands

smhmd opened this issue · comments

Why not just have profiles the default argument in commands?
Instead of hostctl toggle -p awesome you'd have hostctl toggle awesome? (with -p still working for backward compatibility)

I get that the add command, for instance, can be convoluted and a flag (-p) to clearly define profile name is a healthy pattern. But profile as a default argument is straightforward for most other commands.

image

What do you think?

To maintain compatibility with all other commands, you need to use --profile,-p. But this is something I'm thinking on changing at some point, not sure.

profiles are First-class citizen in hostctl. It only makes sense to not require a flag to enter them in the first place.

add domains could be a flag itself: add --domain,-d, since it doesn't have any special flags or behavior from the add command, making profile default argument.

~ hostctl add -h
Reads from a file and set content to a profile in your hosts file.
If the profile already exists it will be added to it.

Usage:
  hostctl add [profile] [flags]

Flags:
  -f, --from string        file to read
  -h, --help                   help for add
      --host-file string   Hosts file path (default "/etc/hosts")
  -d, --domain string   Append content to your host file or profile
  -q, --quiet                   Run command without output
ex: hostctl add awesome -d test.loc another.loc --ip 123.123.123.123

For now I think that for commands that make sense I could support both options:

hostctl toggle awesome == hostctl toggle -p awesome

When I'm done with all features that I have in mind, I'll think on this breaking change. I think it makes total sense, but it requires to change semantics on almost all commands.