# Can't easily add license to rat-excludes file.
.rat-excludes

# Temporary user files.
.gdb_history
.gdb_out
tags

# Ignore documentation folder
docs

# Non-source files
COMPATIBLE
COPYING
INSTALLING.md
RELEASE_NOTES.md
README.md
Godeps.json
.gitignore
.travis.yml
appveyor.yml
Gopkg.lock
Gopkg.toml
bleholog

# Viper - MIT license.
viper

# kr/pretty, ky/text - MIT license
kr

# goproperties - 2-clause BSD.
magiconair

# go-sqlite3 - MIT license.
mattn

# mapstructure - MIT license.
mitchellh

# logrus - MIT license.
Sirupsen

# Cast - MIT license.
cast

# Cobra - Apache.
cobra

# jWalterWeatherman - MIT license.
jwalterweatherman

# pflag - 3-clause BSD.
pflag

# fsnotify.v1 - 3-clause BSD.
fsnotify.v1

# unix go package - 3-clause BSD.
x

# mousetrap - Apache.
mousetrap

# go-crc16 - MIT license.
joaojeronimo

# GATT (BLE library) - 3-clause BSD.
gatt

# TARM (serial library) - 3-clause BSD.
tarm

# Codec (used for CBOR) - MIT license.
ugorji

# go-coap - MIT license.
go-coap

# structs - MIT license
structs

# ansi - MIT license
# logx - MIT license
mgutz

# errors - BSD license
errors

# currantlabs BLE - BSD license
currantlabs

# goble - BSD license
goble

# Console progress bar - 3-clause BSD.
pb

# readline - MIT license
readline

# color (colorized output) - MIT license
color

# go-ble - BSD license
go-ble

# ishell.v1 (interactive shell) - MIT license
ishell.v1

# go-windows-terminal-sequences - MIT license
go-windows-terminal-sequences
