tags:

views:

306

answers:

16

We're struggling to come up with a command name for our all purpose "developer helper" tool, which we are using on our project. It's like a wrapper for our existing tools like cmake and hg. The purpose of the command is really just to make our lives easier by combining multiple commands into one (for example, publishing packages). For example, we have commands like:

do conf
do build
do install
do publish

We've considered a few ambiguous names like do (as above) and run, but obviously, do is a Linux bash command and run is pretty ambiguous.

We'd like our command to be 2 chars short, preferably - but who thinks we're asking the impossible? Is there a practical way to check the availability of command names (other than just typing them into your terminal), or is it just a case of choose one and hope nobody else will use it? Are we worrying about nothing?

A: 

Use makefiles to do everything for you.

mcandre
Hehe, thanks, but we use CMake :)
nbolton
A: 

How about calling it something descriptive, like 'build_runner', and then just aliasing it to 'br' (or preferred acronym) in your .bashrc?

ire_and_curses
Hmm, well it's not just for building, it's an all purpose tool. But thanks anyway.
nbolton
+2  A: 

How many 2-character words are useful in this context? I think you need four. With that in mind, here are some suggestions.

omni
torq
fluf
mega
spif
crnk
splt
argh
quat
drul
scud
prun
sqat
zoom
sizl

I have more if you need them.

Ben M
Lol. My vote is for argh
T.E.D.
My friend suggested, rofl. I fear that may be a little confusing.
nbolton
A: 

There is a really crappy tool called cleartool (part of clearcase), and people will alias it on their machine to "ct". Perhaps you can have a longer command and suggest users alias it.

Juan
+6  A: 

Since it's a "developer helper" tool why not use hm [run|build|port|deploy|test], Help Me ...

Dave Anderson
I like this suggestion best so far :)
nbolton
A: 

It would probably be best to do something like ire_and_curses suggested, name it descriptively then alias it to a 2 letter command. If I was choosing, I would name it dev_help and alias it to dh.

clashes with debian helper
Draemon
+1  A: 

I think that run is a good name, at least anybody that will download your project will know what to do. Calling it without parameters should reveal your options.

Even 'do' will do, I think you can use backquotes to run it from bash scripts.

Also remember that running the tools without parameters will tell you what options you have.

Sorin Sbarnea
'run', 'doit', 'exe' and the like are terribly ambiguous words. run what?
Adriano Varoli Piazza
A: 

I think you're worrying about nothing. Install the program as 'the-command-to-do-evertyhing-and-if-you-dont-make-your-own-alias-for-it-you-should'. I don't think that will be too long for any modern filesystems, but you might need to shorten it to 'tctdeaiydmyoafiys'. See what common aliases are used, and then change the program's name to that. In other words: don't decide, let natural selection decide for you. If you are working with a team of < 10, this should not even remotely cause any problems.

William Pursell
+3  A: 

Give it a verbose name, then let everyone alias it to whatever they want. Make sure you use the verbose name in other scripts so that it removes ambiguity.

This way, each user gets to use whatever makes sense to him/her, and the scripts are more readable and more easily searchable (for example, grepping four "our_cool_tool" will usually yield better results than grepping for "run").

Bryan Oakley
That works only as long as I stick only to my own systems. I can type "svn update" on any CLI on a machine that supports Subversion. If it was "subversion-command update-working-copy" and people aliased it as they would I'd never know how to type it on somebody else's system.
David Thornley
@David: they'd know to type 'subversion-command update-working-copy', wouldn't they? I agree that it's too verbose in your example, but that's something else.
Adriano Varoli Piazza
instead of "verbose" I should have said "instantly recognizable". svn is an perfect example -- short but instantly recognizable. Find the same for your product, but don't limit yourself to two characters. Pick something meaningful and totally unambiguous, if people want something shorter they can create their own alias.
Bryan Oakley
A: 

Call it devtool alias to dt

Draemon
+1  A: 

I use "asd". it's short and most developers type it without thinking (oh, and you can always claim later that it stands for some "Advanced Script for Developers" if you need to justify yourself a few years from now)

Nir Levy
A: 

do conf
do build
do install
do publish

TokenMacGuy
+2  A: 

To check the availability of command names, I suggest looking for all two-letter filenames that are in the directories in your path. You can use a script like this

for item in `echo $PATH | sed 's/:/ /g'` ; do
        ls -1d $item/??
done

It won't show builtins in your shell (like "do" as you mentioned) but it's a good start.

Change ?? to ??? for three-letter files, etc.

I'm going to vote for qp (quick package?) since it's easy to pronounce, easy to type, and easy to remember where the keys are on the keyboard.

bmb
+1  A: 

How about fu? As in Kung Fu. It's a special purpose tool. And it's really easy to type.

Christopher Done
A: 

Custom tools like that I like to start with the prefix 'jj-'. I can type (with big index-finger power) 'jj ' and see all my personal commands. Also, they group together in alphabetical lists. 'J' is not a very common character for built-inc commands, but you can pick your own.

Since you want two characters, you can use just 'zz', or something starting with 'z'.

Are you sure you want to put all your functionality in one command? That might be simultaneously over-constraining and over-loading the interface a little.

Marsh Ray