Skip to content

Add random ASCII art cats and short-form CLI options - #3

Open
SpaceTrucker2196 with Copilot wants to merge 7 commits into
mainfrom
copilot/add-ascii-art-functionality
Open

Add random ASCII art cats and short-form CLI options#3
SpaceTrucker2196 with Copilot wants to merge 7 commits into
mainfrom
copilot/add-ascii-art-functionality

Conversation

Copilot AI commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Enhances user experience with randomized ASCII art and adds ergonomic short-form CLI options alongside existing long-form options.

Changes

ASCII Art Randomization

  • Collection of 6 ASCII art cats, randomly selected per invocation
  • getRandomCatArt() function replaces static lolcatArt constant

CLI Enhancements

  • Short options added: -n, -s, -m, -t, -c, -h (map to existing --numbers, --symbols, etc.)
  • Improved argument parser with explicit defaults in error messages
  • Example: meowpass -n 5 -s 3 -m 30 equivalent to meowpass --numbers 5 --symbols 3 --max-length 30

Documentation

  • ASCII art feature section with cat descriptions
  • Updated command-line options table with both long/short forms
  • Detailed option descriptions with ranges and defaults
  • Additional usage examples demonstrating short options

Code Quality

  • Added .gitignore for build artifacts (meowpass binary, generated Swift files)
  • Corrected spelling: "Relavant" → "Relevant" in ASCII art

All existing functionality preserved; backward compatible.

Original prompt

Update the "MeowPassword" repository to make the following changes:

  1. Implement functionality to generate a nice ASCII art cat on each run of the program. This art could be randomized or consistent, depending on the library you choose. If feasible, use existing popular libraries to source or generate the art dynamically.

  2. Modernize the command-line prompt arguments by incorporating a contemporary Python CLI library like argparse or click. Clearly define command-line inputs for any existing options and document their usage properly.

  3. Improve and update the repository documentation to reflect these changes. Add a section in the README file to explain how the updated arguments work and showcase examples of usage. Include a description of the ASCII art feature and any ways the user could customize it.

This pull request was created from Copilot chat.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 6 commits February 17, 2026 05:45
Co-authored-by: SpaceTrucker2196 <641430+SpaceTrucker2196@users.noreply.github.com>
Co-authored-by: SpaceTrucker2196 <641430+SpaceTrucker2196@users.noreply.github.com>
Co-authored-by: SpaceTrucker2196 <641430+SpaceTrucker2196@users.noreply.github.com>
Co-authored-by: SpaceTrucker2196 <641430+SpaceTrucker2196@users.noreply.github.com>
Co-authored-by: SpaceTrucker2196 <641430+SpaceTrucker2196@users.noreply.github.com>
Co-authored-by: SpaceTrucker2196 <641430+SpaceTrucker2196@users.noreply.github.com>
Copilot AI changed the title [WIP] Add ASCII art cat generation and update CLI handling Add random ASCII art cats and short-form CLI options Feb 17, 2026
@SpaceTrucker2196
SpaceTrucker2196 marked this pull request as ready for review July 3, 2026 12:55
Copilot AI review requested due to automatic review settings July 3, 2026 12:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates MeowPassword’s CLI UX by adding a randomized cat-themed banner on each run and introducing short-form CLI flags that map to existing long options, while also updating the README and ignoring generated build artifacts.

Changes:

  • Replaced the single static banner with a getRandomCatArt() selector over a small in-source collection.
  • Extended argument parsing to accept short options (-n, -s, -m, -t, -c, -h) alongside long options.
  • Updated README usage/docs and added a .gitignore for generated artifacts.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
README.md Documents randomized cat banner and short-form CLI options with examples and option table updates.
main.swift Implements randomized banner selection and expands CLI parsing/help output.
.gitignore Adds ignore rules for build outputs and generated Swift artifacts.
meowpass_production.swift Removed large production-combined Swift source artifact from the repo.
embedded_production.swift Removed large embedded production names artifact from the repo.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md

## Features

- **🎨 Random ASCII Art Cats** - Displays a different adorable cat on each run for a delightful experience
Comment thread README.md
Comment on lines +53 to +55
Each run displays a random ASCII art cat! The program will:
1. Show a random cat ASCII art (6 different cats available)
2. Generate 5 password candidates using cat names
Comment thread README.md
Comment on lines +97 to +99
## ASCII Art Feature

MeowPassword includes 6 different ASCII art cats that are randomly displayed each time you run the program:
Comment thread main.swift
Comment on lines +12 to +15
/**
* Collection of ASCII art cats for randomized display
* Each run selects a random cat to display, adding variety to the user experience
*/
Comment thread main.swift
Comment on lines +89 to +92
/**
* Get a random ASCII art cat from the collection
* @return A randomly selected ASCII art string
*/
Comment thread main.swift
Comment on lines +578 to +579
combined with Kolmogorov complexity analysis. Each run displays a
random ASCII art cat for a delightful experience!
Comment thread main.swift
Comment on lines +128 to 138
case "--numbers", "-n":
if i + 1 < arguments.count, let value = Int(arguments[i + 1]) {
numNumbers = max(1, min(10, value)) // Clamp between 1-10
if value >= 1 && value <= 10 {
numNumbers = value
i += 1 // Skip next argument (the value)
} else {
print("Warning: --numbers/-n must be between 1-10. Using default: random 1-4")
}
} else {
print("Warning: --numbers/-n requires a numeric value. Using default: random 1-4")
}
Comment thread main.swift
Comment on lines +140 to 150
case "--symbols", "-s":
if i + 1 < arguments.count, let value = Int(arguments[i + 1]) {
numSymbols = max(1, min(10, value)) // Clamp between 1-10
if value >= 1 && value <= 10 {
numSymbols = value
i += 1 // Skip next argument (the value)
} else {
print("Warning: --symbols/-s must be between 1-10. Using default: 2")
}
} else {
print("Warning: --symbols/-s requires a numeric value. Using default: 2")
}
Comment thread main.swift
Comment on lines +152 to 162
case "--max-length", "-m":
if i + 1 < arguments.count, let value = Int(arguments[i + 1]) {
maxLength = max(15, min(50, value)) // Clamp between 15-50
if value >= 15 && value <= 50 {
maxLength = value
i += 1 // Skip next argument (the value)
} else {
print("Warning: --max-length/-m must be between 15-50. Using default: 25")
}
} else {
print("Warning: --max-length/-m requires a numeric value. Using default: 25")
}
Comment thread README.md

| Long Option | Short | Description | Default |
|-------------|-------|-------------|---------|
| `--numbers N` | `-n N` | Number of random numbers to insert (1-10) | 1-4 (random) |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants