108 lines
3.0 KiB
Markdown
108 lines
3.0 KiB
Markdown
|
#petname
|
|||
|
|
|||
|
##NAME []()
|
|||
|
|
|||
|
**petname** − a utility to generate "pet names", consisting of a random combination of adverbs, an adjective, and an animal name
|
|||
|
|
|||
|
##SYNOPSIS []()
|
|||
|
|
|||
|
**petname** \[-w|--words INT\] \[-l|--letters INT\] \[-s|--separator STR\] \[-d|--dir STR\] \[-c|--complexity INT\] \[-u|--ubuntu\]
|
|||
|
|
|||
|
##OPTIONS []()
|
|||
|
- -w|--words number of words in the name, default is 2
|
|||
|
- -l|--letters maximum number of letters in each word, default is unlimited
|
|||
|
- -s|--separator string used to separate name words, default is ’-’
|
|||
|
- -d|--dir directory containing adverbs.txt, adjectives.txt, names.txt, default is */usr/share/petname/*
|
|||
|
- -c|--complexity \[0, 1, 2\]; 0 = easy words, 1 = standard words, 2 = complex words, default=1
|
|||
|
- -u|--ubuntu generate ubuntu-style names, alliteration of first character of each word
|
|||
|
|
|||
|
##DESCRIPTION []()
|
|||
|
|
|||
|
This utility will generate "pet names", consisting of a random combination of an adverb, adjective, and an animal name. These are useful for unique hostnames or container names, for instance.
|
|||
|
|
|||
|
As such, PetName tries to follow the tenets of Zooko’s triangle. Names are:
|
|||
|
|
|||
|
- human meaningful
|
|||
|
- decentralized
|
|||
|
- secure
|
|||
|
|
|||
|
##EXAMPLES []()
|
|||
|
|
|||
|
```
|
|||
|
$ petname
|
|||
|
wiggly-yellowtail
|
|||
|
|
|||
|
$ petname --words 1
|
|||
|
robin
|
|||
|
|
|||
|
$ petname --words 3
|
|||
|
primly-lasting-toucan
|
|||
|
|
|||
|
$ petname --words 4
|
|||
|
angrily-impatiently-sage-longhorn
|
|||
|
|
|||
|
$ petname --separator ":"
|
|||
|
cool:gobbler
|
|||
|
|
|||
|
$ petname --separator "" --words 3
|
|||
|
comparablyheartylionfish
|
|||
|
|
|||
|
$ petname --ubuntu
|
|||
|
amazed-asp
|
|||
|
|
|||
|
$ petname --complexity 0
|
|||
|
massive-colt
|
|||
|
```
|
|||
|
|
|||
|
##CODE []()
|
|||
|
|
|||
|
Besides this shell utility, there are also native libraries: python-petname, python3-petname, and golang-petname. Here are some programmatic examples in code:
|
|||
|
|
|||
|
**Golang Example**
|
|||
|
```golang
|
|||
|
package main
|
|||
|
|
|||
|
import (
|
|||
|
"flag"
|
|||
|
"fmt"
|
|||
|
"github.com/dustinkirkland/golang-petname"
|
|||
|
)
|
|||
|
|
|||
|
var (
|
|||
|
words = flag.Int("words", 2, "The number of words in the pet name")
|
|||
|
separator = flag.String("separator", "-", "The separator between words in the pet name")
|
|||
|
)
|
|||
|
|
|||
|
func main() {
|
|||
|
flag.Parse()
|
|||
|
fmt.Println(petname.Generate(\*words, \*separator))
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
**Python Example**
|
|||
|
See: https://pypi.golang.org/pypi/petname
|
|||
|
|
|||
|
$ pip install petname
|
|||
|
$ sudo apt-get install golang-petname
|
|||
|
|
|||
|
```python
|
|||
|
#!/usr/bin/python
|
|||
|
import argparse
|
|||
|
import petname
|
|||
|
|
|||
|
parser = argparse.ArgumentParser(description="Generate human readable random names")
|
|||
|
parser.add_argument("-w", "--words", help="Number of words in name, default=2", default=2)
|
|||
|
parser.add_argument("-s", "--separator", help="Separator between words, default='-'", default="-")
|
|||
|
parser.options = parser.parse_args()
|
|||
|
|
|||
|
print petname.Generate(int(parser.options.words), parser.options.separator)
|
|||
|
```
|
|||
|
|
|||
|
##AUTHOR []()
|
|||
|
|
|||
|
This manpage and the utility were written by Dustin Kirkland <dustin.kirkland@gmail.com> for Ubuntu systems (but may be used by others). Permission is granted to copy, distribute and/or modify this document and the utility under the terms of the Apache2 License.
|
|||
|
|
|||
|
The complete text of the Apache2 License can be found in */usr/share/common-licenses/Apache-2.0* on Debian/Ubuntu systems.
|
|||
|
|
|||
|
------------------------------------------------------------------------
|