From e695a3c30d1291113de2b5dde9d8fc6687e93fe7 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 26 Apr 2015 20:43:32 -0400 Subject: [PATCH] build: add luacheck for static analysis --- .luacheckrc | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 5 +++ README.md | 7 ++++- 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 .luacheckrc diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 000000000..92ec227c4 --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,91 @@ +unused_args = false +std = "luajit" + +globals = { + "G_reader_settings", +} + +read_globals = { + "DRCOUNTMAX", + "DHINTCOUNT", + "DFULL_SCREEN", + "DSCROLL_MODE", + "DGLOBALGAMMA", + "DRENDER_MODE", + "DGLOBAL_CACHE_SIZE_MINIMUM", + "DGLOBAL_CACHE_FREE_PROPORTION", + "DGLOBAL_CACHE_SIZE_MAXIMUM", + "DBACKGROUND_COLOR", + "DOUTER_PAGE_COLOR", + "DCREREADER_VIEW_MODE", + "DSHOWOVERLAP", + "DSHOWHIDDENFILES", + "DLANDSCAPE_CLOCKWISE_ROTATION", + "DCREREADER_TWO_PAGE_THRESHOLD", + "DOVERLAPPIXELS", + "FOLLOW_LINK_TIMEOUT", + "DTAP_ZONE_MENU", + "DTAP_ZONE_CONFIG", + "DTAP_ZONE_MINIBAR", + "DTAP_ZONE_FORWARD", + "DTAP_ZONE_BACKWARD", + "DTAP_ZONE_BOOKMARK", + "DTAP_ZONE_FLIPPING", + "DDOUBLE_TAP_ZONE_NEXT_CHAPTER", + "DDOUBLE_TAP_ZONE_PREV_CHAPTER", + "DCHANGE_WEST_SWIPE_TO_EAST", + "DCHANGE_EAST_SWIPE_TO_WEST", + "DKOPTREADER_CONFIG_FONT_SIZE", + "DKOPTREADER_CONFIG_TEXT_WRAP", + "DKOPTREADER_CONFIG_TRIM_PAGE", + "DKOPTREADER_CONFIG_DETECT_INDENT", + "DKOPTREADER_CONFIG_DEFECT_SIZE", + "DKOPTREADER_CONFIG_PAGE_MARGIN", + "DKOPTREADER_CONFIG_LINE_SPACING", + "DKOPTREADER_CONFIG_RENDER_QUALITY", + "DKOPTREADER_CONFIG_AUTO_STRAIGHTEN", + "DKOPTREADER_CONFIG_JUSTIFICATION", + "DKOPTREADER_CONFIG_MAX_COLUMNS", + "DKOPTREADER_CONFIG_CONTRAST", + "DKOPTREADER_CONFIG_WORD_SPACINGS", + "DKOPTREADER_CONFIG_DEFAULT_WORD_SPACING", + "DKOPTREADER_CONFIG_DOC_LANGS_TEXT", + "DKOPTREADER_CONFIG_DOC_LANGS_CODE", + "DKOPTREADER_CONFIG_DOC_DEFAULT_LANG_CODE", + "DCREREADER_CONFIG_FONT_SIZES", + "DCREREADER_CONFIG_DEFAULT_FONT_SIZE", + "DCREREADER_CONFIG_MARGIN_SIZES_SMALL", + "DCREREADER_CONFIG_MARGIN_SIZES_MEDIUM", + "DCREREADER_CONFIG_MARGIN_SIZES_LARGE", + "DCREREADER_CONFIG_LIGHTER_FONT_GAMMA", + "DCREREADER_CONFIG_DEFAULT_FONT_GAMMA", + "DCREREADER_CONFIG_DARKER_FONT_GAMMA", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_SMALL", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_MEDIUM", + "DCREREADER_CONFIG_LINE_SPACE_PERCENT_LARGE", + "DCREREADER_PROGRESS_BAR", + "DMINIBAR_TOC_MARKER_WIDTH", + "DMINIBAR_HEIGHT", + "DMINIBAR_CONTAINER_HEIGHT", + "DMINIBAR_FONT_SIZE", + "DGESDETECT_DISABLE_DOUBLE_TAP", + "DAUTO_SAVE_PAGING_COUNT", + "DDICT_FONT_SIZE", + "FRONTLIGHT_SENSITIVITY_DECREASE", + "DALPHA_SORT_CASE_INSENSITIVE", + "SEARCH_LIBRARY_PATH", + "SEARCH_LIBRARY_PATH2", + "SEARCH_CASESENSITIVE", + "SEARCH_AUTHORS", + "SEARCH_TITLE", + "SEARCH_TAGS", + "SEARCH_SERIES", + "SEARCH_PATH", + "KOBO_LIGHT_ON_START", + "KOBO_SCREEN_SAVER", + "KOBO_SCREEN_SAVER_LAST_BOOK", + "NETWORK_PROXY", + "cre", + "lfs", + "lipc", +} diff --git a/Makefile b/Makefile index 1bad03147..cbc8ae2d2 100644 --- a/Makefile +++ b/Makefile @@ -251,4 +251,9 @@ pot: po: $(MAKE) -i -C l10n bootstrap pull +static-check: + @if which luacheck > /dev/null; then luacheck frontend; else \ + echo "[!] luacheck not found. "\ + "you can install it with 'luarocks install luacheck'"; fi + .PHONY: test diff --git a/README.md b/README.md index e40a1e484..261d6e18c 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Your GCC should be at least of version 4.7 for both native and cross compiling. Users of Debian and Ubuntu can install the required packages using: ``` -sudo apt-get install build-essential libtool gcc-multilib \ +sudo apt-get install build-essential libtool gcc-multilib libffi-dev \ patch wget unzip git autoconf subversion cmake nasm libsdl1.2-dev ``` @@ -181,6 +181,11 @@ To run unit tests in KOReader: make test ``` +To run Lua static-analysis for KOReader: +``` +make statick-check +``` + You may need to checkout the [travis config file][travis-conf] to setup up a proper testing environment. Briefly, you need to install `luarocks` and then install `busted` with `luarocks`. The "eng" language data file for