Skip to main content

Generate human-readable, random object names

Project description

#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.

------------------------------------------------------------------------

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

petname-2.1.tar.gz (8.2 kB view details)

Uploaded Source

File details

Details for the file petname-2.1.tar.gz.

File metadata

  • Download URL: petname-2.1.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for petname-2.1.tar.gz
Algorithm Hash digest
SHA256 6d8f9c9212bba422fac720f550b77928c5904b7ef038d625e17de03cebfd3bed
MD5 1adbe0ceebbc074e17e03d50fce39e61
BLAKE2b-256 31b0a1ce8336defa1ff55e4f8419b5a2d1e3e5c7f2cc84d5f793407a5838b18d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page