This commit is contained in:
honggengwei
2014-10-15 22:13:58 +08:00
commit b6aa96191d
3 changed files with 859 additions and 0 deletions

25
.gitignore vendored Normal file
View File

@@ -0,0 +1,25 @@
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so
# Folders
_obj
_test
# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
_testmain.go
*.exe
tags
*.test

726
figlet/buildinfont.go Normal file
View File

@@ -0,0 +1,726 @@
package figlet
// Build in source font
func BuildInFont() string {
// from starwars.flf
var str = `flf2a$ 7 6 22 15 4` + "\n" +
`starwars.flf by Ryan Youck (youck@cs.uregina.ca) Dec 25/1994` + "\n" +
`I am not responsible for use of this font ` + "\n" +
`Based on Big.flf by Glenn Chappell` + "\n" +
`` + "\n" +
`$ $@` + "\n" +
`$ $@` + "\n" +
`$ $@` + "\n" +
`$ $@` + "\n" +
`$ $@` + "\n" +
`$ $@` + "\n" +
`$ $@@` + "\n" +
` __ $@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`|__|$@` + "\n" +
`(__)$@` + "\n" +
` $@@` + "\n" +
` _ _ @` + "\n" +
`( | )@` + "\n" +
` V V @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
` _| || |_$@` + "\n" +
`|_ __ _|@` + "\n" +
` _| || |_ @` + "\n" +
`|_ __ _|@` + "\n" +
` |_||_| $@` + "\n" +
` @@` + "\n" +
` __,--,_.@` + "\n" +
` / |@` + "\n" +
" | (----`@" + "\n" +
` \ \ $@` + "\n" +
`.----) | $@` + "\n" +
`|_ __/ $@` + "\n" +
` '--' $@@` + "\n" +
` _ ___$ @` + "\n" +
` / \ / /$ @` + "\n" +
`( o ) / / $ @` + "\n" +
` \_/ / / _$ @` + "\n" +
` / / / \ @` + "\n" +
` / / ( o )@` + "\n" +
` /__/ \_/ @@` + "\n" +
` @` + "\n" +
` ___ @` + "\n" +
` ( _ ) $@` + "\n" +
` / _ \/\@` + "\n" +
`| (_> <@` + "\n" +
` \___/\/@` + "\n" +
` $@@` + "\n" +
` __ @` + "\n" +
`(_ )@` + "\n" +
` |/ @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` @@` + "\n" +
` ___@` + "\n" +
` / /@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
` \__\@@` + "\n" +
`___ @` + "\n" +
`\ \ @` + "\n" +
` | |@` + "\n" +
` | |@` + "\n" +
` | |@` + "\n" +
` | |@` + "\n" +
`/__/ @@` + "\n" +
` _ @` + "\n" +
` /\| |/\ @` + "\n" +
` \ ` + "` ' /$@" + "\n" +
`|_ _|@` + "\n" +
` / , . \$@` + "\n" +
` \/|_|\/ @` + "\n" +
` @@` + "\n" +
` @` + "\n" +
` _ @` + "\n" +
` _| |_$@` + "\n" +
`|_ _|@` + "\n" +
` |_| $@` + "\n" +
` $ @` + "\n" +
` @@` + "\n" +
` @` + "\n" +
` @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` __ @` + "\n" +
`(_ )@` + "\n" +
` |/ @@` + "\n" +
` @` + "\n" +
` @` + "\n" +
` ______ @` + "\n" +
`|______|@` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` @@` + "\n" +
` @` + "\n" +
` @` + "\n" +
` @` + "\n" +
` $ @` + "\n" +
` __ @` + "\n" +
`(__)@` + "\n" +
` @@` + "\n" +
` ___@` + "\n" +
` / /@` + "\n" +
` / / @` + "\n" +
` / /$ @` + "\n" +
` / /$ @` + "\n" +
`/__/$ @` + "\n" +
` @@` + "\n" +
` ___ $@` + "\n" +
` / _ \ $@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
`| |_| |$@` + "\n" +
` \___/ $@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
`/_ |$@` + "\n" +
` | |$@` + "\n" +
` | |$@` + "\n" +
` | |$@` + "\n" +
` |_|$@` + "\n" +
` $@@` + "\n" +
` ___ $@` + "\n" +
`|__ \ $@` + "\n" +
` $) |$@` + "\n" +
` / / $@` + "\n" +
` / /_ $@` + "\n" +
`|____|$@` + "\n" +
` $@@` + "\n" +
` ____ $@` + "\n" +
`|___ \ $@` + "\n" +
` __) |$@` + "\n" +
` |__ < $@` + "\n" +
` ___) |$@` + "\n" +
`|____/ $@` + "\n" +
` $@@` + "\n" +
` _ _ $@` + "\n" +
`| || | $@` + "\n" +
`| || |_ $@` + "\n" +
`|__ _|$@` + "\n" +
` | | $@` + "\n" +
` |_| $@` + "\n" +
` $@@` + "\n" +
` _____ $@` + "\n" +
`| ____|$@` + "\n" +
`| |__ $@` + "\n" +
`|___ \ $@` + "\n" +
` ___) |$@` + "\n" +
`|____/ $@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
` / / $@` + "\n" +
` / /_ $@` + "\n" +
`| '_ \ $@` + "\n" +
`| (_) |$@` + "\n" +
` \___/ $@` + "\n" +
` $@@` + "\n" +
` ______ $@` + "\n" +
`|____ |$@` + "\n" +
` $/ / $@` + "\n" +
` / / $@` + "\n" +
` / / $@` + "\n" +
` /_/ $@` + "\n" +
` $@@` + "\n" +
` ___ $@` + "\n" +
` / _ \ $@` + "\n" +
`| (_) |$@` + "\n" +
` > _ < $@` + "\n" +
`| (_) |$@` + "\n" +
` \___/ $@` + "\n" +
` $@@` + "\n" +
` ___ $@` + "\n" +
` / _ \ $@` + "\n" +
`| (_) |$@` + "\n" +
` \__, |$@` + "\n" +
` / / $@` + "\n" +
` /_/ $@` + "\n" +
` $@@` + "\n" +
` @` + "\n" +
` _ @` + "\n" +
`(_)@` + "\n" +
` $ @` + "\n" +
` _ @` + "\n" +
`(_)@` + "\n" +
` @@` + "\n" +
` @` + "\n" +
` _ @` + "\n" +
`(_)@` + "\n" +
` $ @` + "\n" +
` _ @` + "\n" +
`( )@` + "\n" +
`|/ @@` + "\n" +
` ___@` + "\n" +
` / /@` + "\n" +
` / /$@` + "\n" +
`< <$ @` + "\n" +
` \ \$@` + "\n" +
` \__\@` + "\n" +
` @@` + "\n" +
` @` + "\n" +
` ______ @` + "\n" +
`|______|@` + "\n" +
` ______ @` + "\n" +
`|______|@` + "\n" +
` @` + "\n" +
` @@` + "\n" +
`___ @` + "\n" +
`\ \$ @` + "\n" +
` \ \ @` + "\n" +
` > >@` + "\n" +
` / / @` + "\n" +
`/__/$ @` + "\n" +
` @@` + "\n" +
` ______ $@` + "\n" +
`| \ $@` + "\n" +
"`----) |$@" + "\n" +
` / / $@` + "\n" +
` |__| $@` + "\n" +
` __ $@` + "\n" +
` (__) $@@` + "\n" +
` ____ @` + "\n" +
` / __ \ @` + "\n" +
" / / _` |@" + "\n" +
`| | (_| |@` + "\n" +
` \ \__,_|@` + "\n" +
` \____/ @` + "\n" +
` @@` + "\n" +
` ___ $ @` + "\n" +
` / \ $ @` + "\n" +
` / ^ \$ @` + "\n" +
` / /_\ \$ @` + "\n" +
` / _____ \$ @` + "\n" +
`/__/ \__\$@` + "\n" +
` $@@` + "\n" +
`.______ $@` + "\n" +
`| _ \ $@` + "\n" +
`| |_) |$@` + "\n" +
`| _ < $@` + "\n" +
`| |_) |$@` + "\n" +
`|______/ $@` + "\n" +
` $@@` + "\n" +
` ______$@` + "\n" +
` / |@` + "\n" +
`| ,----'@` + "\n" +
`| | $@` + "\n" +
"| `----.@" + "\n" +
` \______|@` + "\n" +
` $@@` + "\n" +
` _______ $@` + "\n" +
`| \$@` + "\n" +
`| .--. |@` + "\n" +
`| | | |@` + "\n" +
`| '--' |@` + "\n" +
`|_______/$@` + "\n" +
` $@@` + "\n" +
` _______ @` + "\n" +
`| ____|@` + "\n" +
`| |__ $@` + "\n" +
`| __| $@` + "\n" +
`| |____ @` + "\n" +
`|_______|@` + "\n" +
` @@` + "\n" +
` _______ @` + "\n" +
`| ____|@` + "\n" +
`| |__ $@` + "\n" +
`| __| $@` + "\n" +
`| | $ @` + "\n" +
`|__| @` + "\n" +
` @@` + "\n" +
` _______ @` + "\n" +
` / _____|@` + "\n" +
`| | __ $@` + "\n" +
`| | |_ |$@` + "\n" +
`| |__| |$@` + "\n" +
` \______|$@` + "\n" +
` $@@` + "\n" +
` __ __ $@` + "\n" +
`| | | |$@` + "\n" +
`| |__| |$@` + "\n" +
`| __ |$@` + "\n" +
`| | | |$@` + "\n" +
`|__| |__|$@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`|__|$@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
` | |$@` + "\n" +
` | |$@` + "\n" +
`.--. | |$@` + "\n" +
"| `--' |$@" + "\n" +
` \______/ $@` + "\n" +
` $@@` + "\n" +
` __ ___$@` + "\n" +
`| |/ /$@` + "\n" +
`| ' / $@` + "\n" +
`| < $@` + "\n" +
`| . \ $@` + "\n" +
`|__|\__\$@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
`| | $@` + "\n" +
`| | $@` + "\n" +
`| | $@` + "\n" +
"| `----.@" + "\n" +
`|_______|@` + "\n" +
` $@@` + "\n" +
`.___ ___.$@` + "\n" +
`| \/ |$@` + "\n" +
`| \ / |$@` + "\n" +
`| |\/| |$@` + "\n" +
`| | | |$@` + "\n" +
`|__| |__|$@` + "\n" +
` $@@` + "\n" +
`.__ __.$@` + "\n" +
`| \ | |$@` + "\n" +
`| \| |$@` + "\n" +
"| . ` |$@" + "\n" +
`| |\ |$@` + "\n" +
`|__| \__|$@` + "\n" +
` $@@` + "\n" +
` ______ $@` + "\n" +
` / __ \ $@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
"| `--' |$@" + "\n" +
` \______/ $@` + "\n" +
` $@@` + "\n" +
`.______ $@` + "\n" +
`| _ \ $@` + "\n" +
`| |_) |$@` + "\n" +
`| ___/ $@` + "\n" +
`| | $ @` + "\n" +
`| _| $ @` + "\n" +
` $ @@` + "\n" +
` ______ $ @` + "\n" +
` / __ \ $ @` + "\n" +
`| | | | $ @` + "\n" +
`| | | | $ @` + "\n" +
"| `--' '--. @" + "\n" +
` \_____\_____\@` + "\n" +
` $ @@` + "\n" +
`.______ $ @` + "\n" +
`| _ \ $ @` + "\n" +
`| |_) | $ @` + "\n" +
`| / $ @` + "\n" +
`| |\ \----.@` + "\n" +
"| _| `._____|@" + "\n" +
` $@@` + "\n" +
` _______.@` + "\n" +
` / |@` + "\n" +
" | (----`@" + "\n" +
` \ \ $@` + "\n" +
`.----) | $@` + "\n" +
`|_______/ $@` + "\n" +
` $@@` + "\n" +
`.___________.@` + "\n" +
`| |@` + "\n" +
"`---| |----`@" + "\n" +
` | | $ @` + "\n" +
` | | $ @` + "\n" +
` |__| $ @` + "\n" +
` $ @@` + "\n" +
` __ __ $@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
"| `--' |$@" + "\n" +
` \______/ $@` + "\n" +
` $@@` + "\n" +
`____ ____$@` + "\n" +
`\ \ / /$@` + "\n" +
` \ \/ /$ @` + "\n" +
` \ /$ @` + "\n" +
` \ /$ @` + "\n" +
` \__/$ @` + "\n" +
` $ @@` + "\n" +
`____ __ ____$@` + "\n" +
`\ \ / \ / /$@` + "\n" +
` \ \/ \/ /$ @` + "\n" +
` \ /$ @` + "\n" +
` \ /\ /$ @` + "\n" +
` \__/ \__/$ @` + "\n" +
` $ @@` + "\n" +
`___ ___$@` + "\n" +
`\ \ / /$@` + "\n" +
` \ V / $@` + "\n" +
` > < $@` + "\n" +
` / . \ $@` + "\n" +
`/__/ \__\$@` + "\n" +
` $@@` + "\n" +
`____ ____$@` + "\n" +
`\ \ / /$@` + "\n" +
` \ \/ /$ @` + "\n" +
` \_ _/$ @` + "\n" +
` | |$ @` + "\n" +
` |__|$ @` + "\n" +
` $ @@` + "\n" +
` ________ $@` + "\n" +
`| / $@` + "\n" +
"`---/ / $@" + "\n" +
` / / $@` + "\n" +
` / /----.@` + "\n" +
` /________|@` + "\n" +
` $@@` + "\n" +
` ____ @` + "\n" +
`| |@` + "\n" +
"| |-`@" + "\n" +
`| | $@` + "\n" +
`| | $@` + "\n" +
`| |-.@` + "\n" +
`|____|@@` + "\n" +
`___ @` + "\n" +
`\ \ $ @` + "\n" +
` \ \$ @` + "\n" +
` \ \$ @` + "\n" +
` \ \$@` + "\n" +
` \__\@` + "\n" +
` @@` + "\n" +
` ____ @` + "\n" +
`| |@` + "\n" +
"`-| |@" + "\n" +
` | |@` + "\n" +
` | |@` + "\n" +
`.-| |@` + "\n" +
`|____|@@` + "\n" +
` ___ @` + "\n" +
` / \ @` + "\n" +
`/--^--\@` + "\n" +
` $@` + "\n" +
` $@` + "\n" +
` $@` + "\n" +
` $@@` + "\n" +
` @` + "\n" +
` @` + "\n" +
` @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` ______ @` + "\n" +
`|______|@@` + "\n" +
` __ @` + "\n" +
`( _)@` + "\n" +
` \| @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` @@` + "\n" +
` ___ $ @` + "\n" +
` / \ $ @` + "\n" +
` / ^ \$ @` + "\n" +
` / /_\ \$ @` + "\n" +
` / _____ \$ @` + "\n" +
`/__/ \__\$@` + "\n" +
` $@@` + "\n" +
`.______ $@` + "\n" +
`| _ \ $@` + "\n" +
`| |_) |$@` + "\n" +
`| _ < $@` + "\n" +
`| |_) |$@` + "\n" +
`|______/ $@` + "\n" +
` $@@` + "\n" +
` ______$@` + "\n" +
` / |@` + "\n" +
`| ,----'@` + "\n" +
`| | $@` + "\n" +
"| `----.@" + "\n" +
` \______|@` + "\n" +
` $@@` + "\n" +
` _______ $@` + "\n" +
`| \$@` + "\n" +
`| .--. |@` + "\n" +
`| | | |@` + "\n" +
`| '--' |@` + "\n" +
`|_______/$@` + "\n" +
` $@@` + "\n" +
` _______ @` + "\n" +
`| ____|@` + "\n" +
`| |__ $@` + "\n" +
`| __| $@` + "\n" +
`| |____ @` + "\n" +
`|_______|@` + "\n" +
` @@` + "\n" +
` _______ @` + "\n" +
`| ____|@` + "\n" +
`| |__ $@` + "\n" +
`| __| $@` + "\n" +
`| | $ @` + "\n" +
`|__| @` + "\n" +
` @@` + "\n" +
` _______ @` + "\n" +
` / _____|@` + "\n" +
`| | __ $@` + "\n" +
`| | |_ |$@` + "\n" +
`| |__| |$@` + "\n" +
` \______|$@` + "\n" +
` $@@` + "\n" +
` __ __ $@` + "\n" +
`| | | |$@` + "\n" +
`| |__| |$@` + "\n" +
`| __ |$@` + "\n" +
`| | | |$@` + "\n" +
`|__| |__|$@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`|__|$@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
` | |$@` + "\n" +
` | |$@` + "\n" +
`.--. | |$@` + "\n" +
"| `--' |$@" + "\n" +
` \______/ $@` + "\n" +
` $@@` + "\n" +
` __ ___$@` + "\n" +
`| |/ /$@` + "\n" +
`| ' / $@` + "\n" +
`| < $@` + "\n" +
`| . \ $@` + "\n" +
`|__|\__\$@` + "\n" +
` $@@` + "\n" +
` __ $@` + "\n" +
`| | $@` + "\n" +
`| | $@` + "\n" +
`| | $@` + "\n" +
"| `----.@" + "\n" +
`|_______|@` + "\n" +
` $@@` + "\n" +
`.___ ___.$@` + "\n" +
`| \/ |$@` + "\n" +
`| \ / |$@` + "\n" +
`| |\/| |$@` + "\n" +
`| | | |$@` + "\n" +
`|__| |__|$@` + "\n" +
` $@@` + "\n" +
`.__ __.$@` + "\n" +
`| \ | |$@` + "\n" +
`| \| |$@` + "\n" +
"| . ` |$@" + "\n" +
`| |\ |$@` + "\n" +
`|__| \__|$@` + "\n" +
` $@@` + "\n" +
` ______ $@` + "\n" +
` / __ \ $@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
"| `--' |$@" + "\n" +
` \______/ $@` + "\n" +
` $@@` + "\n" +
`.______ $@` + "\n" +
`| _ \ $@` + "\n" +
`| |_) |$@` + "\n" +
`| ___/ $@` + "\n" +
`| | $ @` + "\n" +
`| _| $ @` + "\n" +
` $ @@` + "\n" +
` ______ $ @` + "\n" +
` / __ \ $ @` + "\n" +
`| | | | $ @` + "\n" +
`| | | | $ @` + "\n" +
"| `--' '--. @" + "\n" +
` \_____\_____\@` + "\n" +
` $ @@` + "\n" +
`.______ $ @` + "\n" +
`| _ \ $ @` + "\n" +
`| |_) | $ @` + "\n" +
`| / $ @` + "\n" +
`| |\ \----.@` + "\n" +
"| _| `._____|@" + "\n" +
` $@@` + "\n" +
` _______.@` + "\n" +
` / |@` + "\n" +
" | (----`@" + "\n" +
` \ \ $@` + "\n" +
`.----) | $@` + "\n" +
`|_______/ $@` + "\n" +
` $@@` + "\n" +
`.___________.@` + "\n" +
`| |@` + "\n" +
"`---| |----`@" + "\n" +
` | | $ @` + "\n" +
` | | $ @` + "\n" +
` |__| $ @` + "\n" +
` $ @@` + "\n" +
` __ __ $@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
`| | | |$@` + "\n" +
"| `--' |$@" + "\n" +
` \______/ $@` + "\n" +
` $@@` + "\n" +
`____ ____$@` + "\n" +
`\ \ / /$@` + "\n" +
` \ \/ /$ @` + "\n" +
` \ /$ @` + "\n" +
` \ /$ @` + "\n" +
` \__/$ @` + "\n" +
` $ @@` + "\n" +
`____ __ ____$@` + "\n" +
`\ \ / \ / /$@` + "\n" +
` \ \/ \/ /$ @` + "\n" +
` \ /$ @` + "\n" +
` \ /\ /$ @` + "\n" +
` \__/ \__/$ @` + "\n" +
` $ @@` + "\n" +
`___ ___$@` + "\n" +
`\ \ / /$@` + "\n" +
` \ V / $@` + "\n" +
` > < $@` + "\n" +
` / . \ $@` + "\n" +
`/__/ \__\$@` + "\n" +
` $@@` + "\n" +
`____ ____$@` + "\n" +
`\ \ / /$@` + "\n" +
` \ \/ /$ @` + "\n" +
` \_ _/$ @` + "\n" +
` | |$ @` + "\n" +
` |__|$ @` + "\n" +
` $ @@` + "\n" +
` ________ $@` + "\n" +
`| / $@` + "\n" +
"`---/ / $@" + "\n" +
` / / $@` + "\n" +
` / /----.@` + "\n" +
` /________|@` + "\n" +
` $@@` + "\n" +
` ___@` + "\n" +
` / /@` + "\n" +
` | |$@` + "\n" +
`/ /$ @` + "\n" +
`\ \$ @` + "\n" +
` | |$@` + "\n" +
` \__\@@` + "\n" +
` __ $@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`| |$@` + "\n" +
`|__|$@@` + "\n" +
`___ @` + "\n" +
`\ \$ @` + "\n" +
` | | @` + "\n" +
` \ \@` + "\n" +
` / /@` + "\n" +
` | | @` + "\n" +
`/__/$ @@` + "\n" +
` __ _ @` + "\n" +
` / \/ |@` + "\n" +
`|_/\__/ @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` $ @` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
` (_)_(_) @` + "\n" +
` / \ @` + "\n" +
` / _ \ @` + "\n" +
` / ___ \ @` + "\n" +
`/_/ \_\@` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
`(_)_(_)@` + "\n" +
` / _ \ @` + "\n" +
`| | | |@` + "\n" +
`| |_| |@` + "\n" +
` \___/ @` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
`(_) (_)@` + "\n" +
`| | | |@` + "\n" +
`| | | |@` + "\n" +
`| |_| |@` + "\n" +
` \___/ @` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
`(_) (_)@` + "\n" +
` __ _ @` + "\n" +
" / _` |@" + "\n" +
`| (_| |@` + "\n" +
` \__,_|@` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
`(_) (_)@` + "\n" +
` ___ @` + "\n" +
` / _ \ @` + "\n" +
`| (_) |@` + "\n" +
` \___/ @` + "\n" +
` @@` + "\n" +
` _ _ @` + "\n" +
`(_) (_)@` + "\n" +
` _ _ @` + "\n" +
`| | | |@` + "\n" +
`| |_| |@` + "\n" +
` \__,_|@` + "\n" +
` @@` + "\n" +
` ___ @` + "\n" +
` / _ \ @` + "\n" +
`| | ) |@` + "\n" +
`| |< < @` + "\n" +
`| | ) |@` + "\n" +
`| ||_/ @` + "\n" +
"|_| @@"
return str
}

108
figlet/font.go Normal file
View File

@@ -0,0 +1,108 @@
package figlet
import (
"errors"
"io/ioutil"
"os"
"path/filepath"
"strconv"
"strings"
)
type Font struct {
Hardblank string
Height int
FontSlice []string
}
type FontManager struct {
// font library
fontLib map[string]*Font
// font name to path
fontList map[string]string
}
func NewFontManager() *FontManager {
this := &FontManager{}
this.fontLib = make(map[string]*Font)
this.fontList = make(map[string]string)
this.loadBuildInFont()
return this
}
// walk through the path, load all the *.flf font file
func (this *FontManager) LoadFont(fontPath string) error {
return filepath.Walk(fontPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() || !strings.HasSuffix(info.Name(), ".flf") {
return nil
}
fontName := strings.TrimSuffix(info.Name(), ".flf")
this.fontList[fontName] = path
return nil
})
}
func (this *FontManager) loadBuildInFont() error {
font, err := this.parseFontContent(BuildInFont())
if err != nil {
return err
}
this.fontLib["default"] = font
return nil
}
func (this *FontManager) loadDiskFont(fontName, fontFilePath string) error {
// read full file content
fileBuf, err := ioutil.ReadFile(fontFilePath)
if err != nil {
return err
}
font, err := this.parseFontContent(string(fileBuf))
if err != nil {
return err
}
this.fontLib[fontName] = font
return nil
}
func (this *FontManager) parseFontContent(cont string) (*Font, error) {
lines := strings.Split(cont, "\n")
if len(lines) < 1 {
return nil, errors.New("font content error")
}
// flf2a$ 7 5 16 -1 12
// Fender by Scooter 8/94 (jkratten@law.georgetown.edu)
//
// Explanation of first line:
// flf2 - "magic number" for file identification
// a - should always be `a', for now
// $ - the "hardblank" -- prints as a blank, but can't be smushed
// 7 - height of a character
// 5 - height of a character, not including descenders
// 10 - max line length (excluding comment lines) + a fudge factor
// -1 - default smushmode for this font (like "-m 15" on command line)
// 12 - number of comment lines
header := strings.Split(lines[0], " ")
font := &Font{}
font.Hardblank = header[0][len(header)-1:]
font.Height, _ = strconv.Atoi(header[1])
commentEndLine, _ := strconv.Atoi(header[5])
font.FontSlice = lines[commentEndLine+1:]
return font, nil
}