summaryrefslogtreecommitdiff
path: root/cowsay/cowsay.lua
blob: f91d1b0cfa9cb395d99381b390b41125e2968c39 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98

--------------------------------------------------------------------------------
-- my drawing
function ascii_nerd( name )
	local s = ""
	s = s .. [[

\ | | /
| o o |
 \ O /
  | |
]]
	local l = string.len(name)
	for i=1,l+4 do s = s .. "+" end
	s = s .. "\n| " .. name .. " |\n"
	for i=1,l+4 do s = s .. "+" end
	return s
end

--------------------------------------------------------------------------------
--from beej.us
function ascii_goat( text )
	local s = ""
	s = s .. [[    )_)
 ___|oo) ]]
	s = s .. text .. "\n"
	s = s .. [['|  |\_|                            
 |||| #
 ````]]
	return s
end

--------------------------------------------------------------------------------
--http://ascii.co.uk/art/shoot
function ascii_shoot( name )
	local s = ""
	if name == nil then name = "" else
	name = "("..name..")" end
	s = s .. [[
   O
  <\==-   -   - -   -  -  - ---
 ./ \                            _/\_\O ]] .. name .. [[
]]
	return s
end

--------------------------------------------------------------------------------
--http://ascii.co.uk/art/juice
function ascii_juice( name1, name2 )
	local s = ""
	if name1 == nil then name1 = "" end
	if name2 == nil then name2 = "" end
	local l1 = string.len( name1 )
	local l2 = string.len( name2 )

	if l1 > 5 then 
		name1 = string.sub( name1, 1, 5 )
	elseif l1 < 5 then
		while string.len(name1) < 5 do
			name1 = name1 .. ' '
		end
	end

	if l2 > 5 then
		name2 = string.sub( name2, 1, 5 )
	elseif l2 < 5 then
		while string.len( name2 ) < 5 do
			name2 = name2 .. ' '
		end
	end

	s = s .. [[
             __
            /.-
    ______ //
   /______'/|
   [       ]|
   [ ]] .. name1 .. [[ ]|
   [ ]] .. name2 .. [[ ]|
   [  _\_  ]|
   [  :::  ]|
   [   :'  ]/
   '-------']]
   return s
end

--------------------------------------------------------------------------------
for k,v in ipairs(arg) do
	if v == "nerd" then
		print( ascii_nerd( arg[k+1] ) )
	elseif v == "goat" then
		print( ascii_goat( arg[k+1] ) )
	elseif v == "shoot" then
		print( ascii_shoot( arg[k+1] ) )
	elseif v == "juice" then
		print( ascii_juice( arg[k+1], arg[k+2]))
	end
end