From b6aa96191db8818ecc1bd42b9626a80bcbff4cdf Mon Sep 17 00:00:00 2001 From: honggengwei Date: Wed, 15 Oct 2014 22:13:58 +0800 Subject: [PATCH] add file --- .gitignore | 25 ++ figlet/buildinfont.go | 726 ++++++++++++++++++++++++++++++++++++++++++ figlet/font.go | 108 +++++++ 3 files changed, 859 insertions(+) create mode 100644 .gitignore create mode 100644 figlet/buildinfont.go create mode 100644 figlet/font.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7d2b86 --- /dev/null +++ b/.gitignore @@ -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 diff --git a/figlet/buildinfont.go b/figlet/buildinfont.go new file mode 100644 index 0000000..e64b949 --- /dev/null +++ b/figlet/buildinfont.go @@ -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 +} diff --git a/figlet/font.go b/figlet/font.go new file mode 100644 index 0000000..678e140 --- /dev/null +++ b/figlet/font.go @@ -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 +}