Skip to content

Commit e205a3d

Browse files
committed
Implement cowsay CLI tool
1 parent 4350f48 commit e205a3d

3 files changed

Lines changed: 41 additions & 0 deletions

File tree

implement-cowsay/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.venv/
2+
venv/
3+
__pycache__/
4+
*.pyc
5+
.DS_Store

implement-cowsay/cow.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import argparse
2+
import cowsay
3+
4+
5+
def main():
6+
# Get animals dynamically from cowsay (DO NOT hardcode)
7+
animals = cowsay.char_names
8+
9+
parser = argparse.ArgumentParser(
10+
prog="cowsay",
11+
description="Make animals say things"
12+
)
13+
14+
parser.add_argument(
15+
"--animal",
16+
choices=animals,
17+
default="cow",
18+
help="The animal to be saying things."
19+
)
20+
21+
parser.add_argument(
22+
"message",
23+
nargs="+",
24+
help="The message to say."
25+
)
26+
27+
args = parser.parse_args()
28+
29+
message = " ".join(args.message)
30+
31+
print(cowsay.get_output_string(args.animal, message))
32+
33+
34+
if __name__ == "__main__":
35+
main()

implement-cowsay/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cowsay

0 commit comments

Comments
 (0)