petname - a utility to generate "pet names", consisting of a random combination of adverbs, an adjective,
Contents
Code
Besides this shell utility, there are also native libraries: python-petname, python3-petname, and golang-
petname. Here are some programmatic examples in code:
GolangExample
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))
}
PythonExample
See: https://pypi.golang.org/pypi/petname
$ pip3 install petname
$ sudo apt-get install python3-petname
#!/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)
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
Name
petname - a utility to generate "pet names", consisting of a random combination of adverbs, an adjective,
and an animal name
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 (small wordlist), 1 = standard words (medium wordlist), 2 = complex words (large wordlist), default=0
-u|--ubuntu generate ubuntu-style names, alliteration of first character of each word
Synopsis
petname [-w|--words INT] [-l|--letters INT] [-s|--separator STR] [-d|--dir STR] [-c|--complexity INT]
[-u|--ubuntu]
