I am designing a command-line interface for users and administrators to interact with an online radio system. One of the administrator tasks is assigning songs and albums to various genres. This is the general format of the command I designed for this task:
> command-name action object-class object-id target-genre
In this particular case:
command-name
ismanage-genre
action
can be one ofshow
,add
,drop
,reset
object-class
is eithersong
oralbum
; operating on analbum
is a shortcut for operating on everysong
in thealbum
object-id
is a unique numeric identifier for thesong
oralbum
; it can be obtained through other commandstarget-genre
is the genre to apply to thesong
oralbum
An example in context might be:
> manage-genre add song 12345 "Vocal"
Is there a best practice for how to order the arguments in this command? Is there a more natural way to do it? Can you point me to any literature on designing useful command-line interfaces?