@port-labs/jq-node-bindings 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/binding.gyp +3 -3
  2. package/configure +8 -6
  3. package/deps/jq/.travis.yml +184 -35
  4. package/deps/jq/AUTHORS +31 -30
  5. package/deps/jq/COPYING +2 -2
  6. package/deps/jq/KEYS +8 -0
  7. package/deps/jq/Makefile.am +85 -70
  8. package/deps/jq/NEWS +5 -4
  9. package/deps/jq/README.md +18 -9
  10. package/deps/jq/appveyor.yml +53 -0
  11. package/deps/jq/compile-ios.sh +5 -5
  12. package/deps/jq/config/m4/check-math-func.m4 +7 -2
  13. package/deps/jq/configure.ac +130 -68
  14. package/deps/jq/docs/Rakefile +14 -135
  15. package/deps/jq/docs/Rakefile.manual +49 -0
  16. package/deps/jq/docs/Rakefile.website +76 -0
  17. package/deps/jq/docs/content/2.download/default.yml +115 -39
  18. package/deps/jq/docs/content/3.manual/manual.yml +641 -231
  19. package/deps/jq/docs/content/3.manual/v1.3/manual.yml +130 -130
  20. package/deps/jq/docs/content/3.manual/v1.4/manual.yml +160 -160
  21. package/deps/jq/docs/content/3.manual/v1.5/manual.yml +2878 -0
  22. package/deps/jq/docs/content/3.manual/v1.6/manual.yml +3287 -0
  23. package/deps/jq/docs/content/index/index.yml +28 -6
  24. package/deps/jq/docs/public/.htaccess +2 -2
  25. package/deps/jq/docs/public/css/base.scss +141 -59
  26. package/deps/jq/docs/public/js/manual-search.js +52 -0
  27. package/deps/jq/docs/site.yml +1 -10
  28. package/deps/jq/docs/templates/default.liquid +10 -10
  29. package/deps/jq/docs/templates/index.liquid +45 -32
  30. package/deps/jq/docs/templates/manual.liquid +67 -90
  31. package/deps/jq/docs/templates/shared/_footer.liquid +10 -5
  32. package/deps/jq/docs/templates/shared/_head.liquid +17 -12
  33. package/deps/jq/docs/templates/shared/_navbar.liquid +27 -0
  34. package/deps/jq/jq.1.prebuilt +523 -139
  35. package/deps/jq/modules/oniguruma/AUTHORS +1 -0
  36. package/deps/jq/modules/oniguruma/CMakeLists.txt +86 -0
  37. package/deps/jq/modules/oniguruma/COPYING +28 -0
  38. package/deps/jq/modules/oniguruma/ChangeLog +0 -0
  39. package/deps/jq/modules/oniguruma/HISTORY +2138 -0
  40. package/deps/jq/modules/oniguruma/Makefile.am +33 -0
  41. package/deps/jq/modules/oniguruma/NEWS +0 -0
  42. package/deps/jq/modules/oniguruma/README +189 -0
  43. package/deps/jq/modules/oniguruma/README.ja +195 -0
  44. package/deps/jq/modules/oniguruma/README.md +203 -0
  45. package/deps/jq/modules/oniguruma/cmake/dist.cmake +321 -0
  46. package/deps/jq/modules/oniguruma/compile +348 -0
  47. package/deps/jq/modules/oniguruma/config.guess +1754 -0
  48. package/deps/jq/modules/oniguruma/config.sub +1890 -0
  49. package/deps/jq/modules/oniguruma/configure.ac +87 -0
  50. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +31 -0
  51. package/deps/jq/modules/oniguruma/depcomp +791 -0
  52. package/deps/jq/modules/oniguruma/dist.info +10 -0
  53. package/deps/jq/modules/oniguruma/doc/API +660 -0
  54. package/deps/jq/modules/oniguruma/doc/API.ja +667 -0
  55. package/deps/jq/modules/oniguruma/doc/FAQ +12 -0
  56. package/deps/jq/modules/oniguruma/doc/FAQ.ja +22 -0
  57. package/deps/jq/modules/oniguruma/doc/RE +436 -0
  58. package/deps/jq/modules/oniguruma/doc/RE.ja +448 -0
  59. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +698 -0
  60. package/deps/jq/modules/oniguruma/index.html +181 -0
  61. package/deps/jq/modules/oniguruma/index_ja.html +184 -0
  62. package/deps/jq/modules/oniguruma/install-sh +541 -0
  63. package/deps/jq/modules/oniguruma/m4/.whatever +0 -0
  64. package/deps/jq/modules/oniguruma/make_win32.bat +3 -0
  65. package/deps/jq/modules/oniguruma/make_win64.bat +3 -0
  66. package/deps/jq/modules/oniguruma/missing +215 -0
  67. package/deps/jq/modules/oniguruma/onig-config.in +78 -0
  68. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +13 -0
  69. package/deps/jq/modules/oniguruma/oniguruma.pc.in +14 -0
  70. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +28 -0
  71. package/deps/jq/modules/oniguruma/sample/Makefile.am +34 -0
  72. package/deps/jq/modules/oniguruma/sample/bug_fix.c +131 -0
  73. package/deps/jq/modules/oniguruma/sample/crnl.c +127 -0
  74. package/deps/jq/modules/oniguruma/sample/encode.c +308 -0
  75. package/deps/jq/modules/oniguruma/sample/listcap.c +110 -0
  76. package/deps/jq/modules/oniguruma/sample/names.c +75 -0
  77. package/deps/jq/modules/oniguruma/sample/posix.c +96 -0
  78. package/deps/jq/modules/oniguruma/sample/scan.c +88 -0
  79. package/deps/jq/modules/oniguruma/sample/simple.c +59 -0
  80. package/deps/jq/modules/oniguruma/sample/sql.c +76 -0
  81. package/deps/jq/modules/oniguruma/sample/syntax.c +76 -0
  82. package/deps/jq/modules/oniguruma/sample/user_property.c +87 -0
  83. package/deps/jq/modules/oniguruma/src/Makefile.am +58 -0
  84. package/deps/jq/modules/oniguruma/src/Makefile.windows +183 -0
  85. package/deps/jq/modules/oniguruma/src/ascii.c +61 -0
  86. package/deps/jq/modules/oniguruma/src/big5.c +190 -0
  87. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +71 -0
  88. package/deps/jq/modules/oniguruma/src/config.h.win32 +84 -0
  89. package/deps/jq/modules/oniguruma/src/config.h.win64 +84 -0
  90. package/deps/jq/modules/oniguruma/src/cp1251.c +203 -0
  91. package/deps/jq/modules/oniguruma/src/euc_jp.c +310 -0
  92. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +158 -0
  93. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +27 -0
  94. package/deps/jq/modules/oniguruma/src/euc_kr.c +188 -0
  95. package/deps/jq/modules/oniguruma/src/euc_tw.c +171 -0
  96. package/deps/jq/modules/oniguruma/src/gb18030.c +538 -0
  97. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +67 -0
  98. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +55 -0
  99. package/deps/jq/modules/oniguruma/src/iso8859_1.c +275 -0
  100. package/deps/jq/modules/oniguruma/src/iso8859_10.c +242 -0
  101. package/deps/jq/modules/oniguruma/src/iso8859_11.c +99 -0
  102. package/deps/jq/modules/oniguruma/src/iso8859_13.c +231 -0
  103. package/deps/jq/modules/oniguruma/src/iso8859_14.c +244 -0
  104. package/deps/jq/modules/oniguruma/src/iso8859_15.c +238 -0
  105. package/deps/jq/modules/oniguruma/src/iso8859_16.c +240 -0
  106. package/deps/jq/modules/oniguruma/src/iso8859_2.c +238 -0
  107. package/deps/jq/modules/oniguruma/src/iso8859_3.c +238 -0
  108. package/deps/jq/modules/oniguruma/src/iso8859_4.c +240 -0
  109. package/deps/jq/modules/oniguruma/src/iso8859_5.c +229 -0
  110. package/deps/jq/modules/oniguruma/src/iso8859_6.c +99 -0
  111. package/deps/jq/modules/oniguruma/src/iso8859_7.c +225 -0
  112. package/deps/jq/modules/oniguruma/src/iso8859_8.c +99 -0
  113. package/deps/jq/modules/oniguruma/src/iso8859_9.c +231 -0
  114. package/deps/jq/modules/oniguruma/src/koi8.c +253 -0
  115. package/deps/jq/modules/oniguruma/src/koi8_r.c +215 -0
  116. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +22 -0
  117. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +306 -0
  118. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +18 -0
  119. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +545 -0
  120. package/deps/jq/modules/oniguruma/src/mktable.c +1184 -0
  121. package/deps/jq/modules/oniguruma/src/onig_init.c +45 -0
  122. package/deps/jq/modules/oniguruma/src/oniggnu.h +85 -0
  123. package/deps/jq/modules/oniguruma/src/onigposix.h +169 -0
  124. package/deps/jq/modules/oniguruma/src/oniguruma.h +841 -0
  125. package/deps/jq/modules/oniguruma/src/regcomp.c +6300 -0
  126. package/deps/jq/modules/oniguruma/src/regenc.c +917 -0
  127. package/deps/jq/modules/oniguruma/src/regenc.h +243 -0
  128. package/deps/jq/modules/oniguruma/src/regerror.c +393 -0
  129. package/deps/jq/modules/oniguruma/src/regexec.c +3856 -0
  130. package/deps/jq/modules/oniguruma/src/regext.c +202 -0
  131. package/deps/jq/modules/oniguruma/src/reggnu.c +147 -0
  132. package/deps/jq/modules/oniguruma/src/regint.h +779 -0
  133. package/deps/jq/modules/oniguruma/src/regparse.c +5403 -0
  134. package/deps/jq/modules/oniguruma/src/regparse.h +351 -0
  135. package/deps/jq/modules/oniguruma/src/regposerr.c +105 -0
  136. package/deps/jq/modules/oniguruma/src/regposix.c +306 -0
  137. package/deps/jq/modules/oniguruma/src/regsyntax.c +315 -0
  138. package/deps/jq/modules/oniguruma/src/regtrav.c +76 -0
  139. package/deps/jq/modules/oniguruma/src/regversion.c +57 -0
  140. package/deps/jq/modules/oniguruma/src/sjis.c +341 -0
  141. package/deps/jq/modules/oniguruma/src/sjis_prop.c +158 -0
  142. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +27 -0
  143. package/deps/jq/modules/oniguruma/src/st.c +589 -0
  144. package/deps/jq/modules/oniguruma/src/st.h +68 -0
  145. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +2250 -0
  146. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +203 -0
  147. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +113 -0
  148. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +1225 -0
  149. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +24742 -0
  150. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +4846 -0
  151. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +2571 -0
  152. package/deps/jq/modules/oniguruma/src/unicode.c +664 -0
  153. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +2548 -0
  154. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +203 -0
  155. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +113 -0
  156. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1366 -0
  157. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +25306 -0
  158. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +4940 -0
  159. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +2854 -0
  160. package/deps/jq/modules/oniguruma/src/utf16_be.c +235 -0
  161. package/deps/jq/modules/oniguruma/src/utf16_le.c +245 -0
  162. package/deps/jq/modules/oniguruma/src/utf32_be.c +194 -0
  163. package/deps/jq/modules/oniguruma/src/utf32_le.c +194 -0
  164. package/deps/jq/modules/oniguruma/src/utf8.c +335 -0
  165. package/deps/jq/modules/oniguruma/test/Makefile.am +28 -0
  166. package/deps/jq/modules/oniguruma/test/testc.c +874 -0
  167. package/deps/jq/modules/oniguruma/test/testu.c +916 -0
  168. package/deps/jq/modules/oniguruma/test-driver +153 -0
  169. package/deps/jq/modules/oniguruma/windows/testc.c +869 -0
  170. package/deps/jq/scripts/crosscompile +2 -1
  171. package/deps/jq/scripts/gen_utf8_tables.py +2 -3
  172. package/deps/jq/scripts/update-website +29 -0
  173. package/deps/jq/scripts/version +7 -2
  174. package/deps/jq/sig/jq-release.key +41 -0
  175. package/deps/jq/sig/v1.3/jq-linux-x86.asc +17 -0
  176. package/deps/jq/sig/v1.3/jq-linux-x86_64.asc +17 -0
  177. package/deps/jq/sig/v1.3/jq-osx-x86.asc +17 -0
  178. package/deps/jq/sig/v1.3/jq-osx-x86_64.asc +17 -0
  179. package/deps/jq/sig/v1.3/jq-win32.exe.asc +17 -0
  180. package/deps/jq/sig/v1.3/jq-win64.exe.asc +17 -0
  181. package/deps/jq/sig/v1.3/sha256sum.txt +6 -0
  182. package/deps/jq/sig/v1.4/jq-linux-x86.asc +17 -0
  183. package/deps/jq/sig/v1.4/jq-linux-x86_64.asc +17 -0
  184. package/deps/jq/sig/v1.4/jq-osx-x86.asc +17 -0
  185. package/deps/jq/sig/v1.4/jq-osx-x86_64.asc +17 -0
  186. package/deps/jq/sig/v1.4/jq-solaris11-32.asc +17 -0
  187. package/deps/jq/sig/v1.4/jq-solaris11-64.asc +17 -0
  188. package/deps/jq/sig/v1.4/jq-win32.exe.asc +17 -0
  189. package/deps/jq/sig/v1.4/jq-win64.exe.asc +17 -0
  190. package/deps/jq/sig/v1.4/sha256sum.txt +8 -0
  191. package/deps/jq/sig/v1.5/jq-linux32-no-oniguruma.asc +17 -0
  192. package/deps/jq/sig/v1.5/jq-linux32.asc +17 -0
  193. package/deps/jq/sig/v1.5/jq-linux64.asc +17 -0
  194. package/deps/jq/sig/v1.5/jq-osx-amd64.asc +17 -0
  195. package/deps/jq/sig/v1.5/jq-win32.exe.asc +17 -0
  196. package/deps/jq/sig/v1.5/jq-win64.exe.asc +17 -0
  197. package/deps/jq/sig/v1.5/sha256sum.txt +5 -0
  198. package/deps/jq/sig/v1.5rc1/jq-linux-x86_64-static.asc +17 -0
  199. package/deps/jq/sig/v1.5rc1/jq-win32.exe.asc +17 -0
  200. package/deps/jq/sig/v1.5rc1/jq-win64.exe.asc +17 -0
  201. package/deps/jq/sig/v1.5rc1/sha256sum.txt +3 -0
  202. package/deps/jq/sig/v1.5rc2/jq-linux-x86.asc +17 -0
  203. package/deps/jq/sig/v1.5rc2/jq-linux-x86_64.asc +17 -0
  204. package/deps/jq/sig/v1.5rc2/jq-osx-x86_64.asc +17 -0
  205. package/deps/jq/sig/v1.5rc2/jq-win32.exe.asc +17 -0
  206. package/deps/jq/sig/v1.5rc2/jq-win64.exe.asc +17 -0
  207. package/deps/jq/sig/v1.5rc2/sha256sum.txt +5 -0
  208. package/deps/jq/sig/v1.6/jq-linux32.asc +16 -0
  209. package/deps/jq/sig/v1.6/jq-linux64.asc +16 -0
  210. package/deps/jq/sig/v1.6/jq-osx-amd64.asc +16 -0
  211. package/deps/jq/sig/v1.6/jq-win32.exe.asc +16 -0
  212. package/deps/jq/sig/v1.6/jq-win64.exe.asc +16 -0
  213. package/deps/jq/sig/v1.6/sha256sum.txt +5 -0
  214. package/deps/jq/{builtin.c → src/builtin.c} +449 -344
  215. package/deps/jq/{builtin.h → src/builtin.h} +0 -0
  216. package/deps/jq/src/builtin.jq +311 -0
  217. package/deps/jq/{bytecode.c → src/bytecode.c} +0 -0
  218. package/deps/jq/{bytecode.h → src/bytecode.h} +0 -0
  219. package/deps/jq/{compile.c → src/compile.c} +213 -37
  220. package/deps/jq/{compile.h → src/compile.h} +7 -2
  221. package/deps/jq/{exec_stack.h → src/exec_stack.h} +0 -0
  222. package/deps/jq/{execute.c → src/execute.c} +127 -24
  223. package/deps/jq/{inject_errors.c → src/inject_errors.c} +0 -0
  224. package/deps/jq/{jq.h → src/jq.h} +13 -2
  225. package/deps/jq/{jq_parser.h → src/jq_parser.h} +0 -0
  226. package/deps/jq/{jq_test.c → src/jq_test.c} +1 -1
  227. package/deps/jq/{jv.c → src/jv.c} +24 -5
  228. package/deps/jq/{jv.h → src/jv.h} +46 -11
  229. package/deps/jq/{jv_alloc.c → src/jv_alloc.c} +0 -0
  230. package/deps/jq/{jv_alloc.h → src/jv_alloc.h} +0 -0
  231. package/deps/jq/{jv_aux.c → src/jv_aux.c} +38 -14
  232. package/deps/jq/{jv_dtoa.c → src/jv_dtoa.c} +4 -5
  233. package/deps/jq/{jv_dtoa.h → src/jv_dtoa.h} +0 -0
  234. package/deps/jq/src/jv_file.c +81 -0
  235. package/deps/jq/{jv_parse.c → src/jv_parse.c} +8 -2
  236. package/deps/jq/{jv_print.c → src/jv_print.c} +80 -27
  237. package/deps/jq/{jv_unicode.c → src/jv_unicode.c} +28 -4
  238. package/deps/jq/{jv_unicode.h → src/jv_unicode.h} +1 -0
  239. package/deps/jq/{jv_utf8_tables.h → src/jv_utf8_tables.h} +0 -0
  240. package/deps/jq/{lexer.c → src/lexer.c} +317 -292
  241. package/deps/jq/{lexer.h → src/lexer.h} +16 -12
  242. package/deps/jq/{lexer.l → src/lexer.l} +5 -4
  243. package/deps/jq/src/libm.h +291 -0
  244. package/deps/jq/{linker.c → src/linker.c} +5 -3
  245. package/deps/jq/{linker.h → src/linker.h} +0 -0
  246. package/deps/jq/{locfile.c → src/locfile.c} +1 -1
  247. package/deps/jq/{locfile.h → src/locfile.h} +0 -0
  248. package/deps/jq/{main.c → src/main.c} +202 -100
  249. package/deps/jq/{opcode_list.h → src/opcode_list.h} +4 -0
  250. package/deps/jq/{parser.c → src/parser.c} +1149 -1069
  251. package/deps/jq/{parser.h → src/parser.h} +28 -24
  252. package/deps/jq/{parser.y → src/parser.y} +108 -52
  253. package/deps/jq/{util.c → src/util.c} +12 -9
  254. package/deps/jq/{util.h → src/util.h} +0 -0
  255. package/deps/jq/tests/base64.test +35 -0
  256. package/deps/jq/tests/base64test +5 -0
  257. package/deps/jq/tests/jq-f-test.sh +4 -0
  258. package/deps/jq/tests/jq.test +305 -21
  259. package/deps/jq/tests/jqtest +1 -1
  260. package/deps/jq/tests/mantest +1 -1
  261. package/deps/jq/tests/onig.test +13 -0
  262. package/deps/jq/tests/onigtest +1 -1
  263. package/deps/jq/tests/optional.test +20 -0
  264. package/deps/jq/tests/optionaltest +5 -0
  265. package/deps/jq/tests/setup +7 -1
  266. package/deps/jq/tests/shtest +133 -29
  267. package/deps/jq/tests/utf8-truncate.jq +3 -0
  268. package/deps/jq/tests/utf8test +10 -0
  269. package/lib/index.js +7 -1
  270. package/package.json +3 -3
  271. package/test/santiy.test.js +24 -0
  272. package/deps/jq/docs/default_manpage.md +0 -22
  273. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.css +0 -1058
  274. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.min.css +0 -9
  275. package/deps/jq/docs/public/bootstrap/css/bootstrap.css +0 -5224
  276. package/deps/jq/docs/public/bootstrap/css/bootstrap.min.css +0 -9
  277. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings-white.png +0 -0
  278. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings.png +0 -0
  279. package/deps/jq/docs/public/bootstrap/js/bootstrap.js +0 -2027
  280. package/deps/jq/docs/public/bootstrap/js/bootstrap.min.js +0 -6
  281. package/deps/jq/docs/templates/shared/_header.liquid +0 -26
  282. package/deps/jq/jq.1.default +0 -39
  283. package/deps/jq/jv_file.c +0 -49
  284. package/deps/jq/libm.h +0 -160
  285. package/deps/jq/setup.sh +0 -33
  286. package/reports/jest-port-api.xml +0 -35
package/deps/jq/NEWS CHANGED
@@ -1,11 +1,12 @@
1
1
 
2
2
  Release history
3
3
 
4
- * jq version 1.0 was released on Sun Oct 21 2012
5
- * jq version 1.1 was released on Sun Oct 21 2012
6
- * jq version 1.2 was released on Thu Dec 20 2012
7
- * jq version 1.3 was released on Sun May 19 2013
4
+ * jq version 1.5 was released on Sat Aug 15 2015
8
5
  * jq version 1.4 was released on Mon Jun 9 2014
6
+ * jq version 1.3 was released on Sun May 19 2013
7
+ * jq version 1.2 was released on Thu Dec 20 2012
8
+ * jq version 1.1 was released on Sun Oct 21 2012
9
+ * jq version 1.0 was released on Sun Oct 21 2012
9
10
 
10
11
  New features in 1.5 since 1.4:
11
12
 
package/deps/jq/README.md CHANGED
@@ -1,7 +1,12 @@
1
1
  jq
2
2
  ==
3
3
 
4
- jq is a command-line JSON processor.
4
+ jq is a lightweight and flexible command-line JSON processor.
5
+
6
+ [![Coverage Status](https://coveralls.io/repos/stedolan/jq/badge.svg?branch=master&service=github)](https://coveralls.io/github/stedolan/jq?branch=master),
7
+ Unix: [![Build Status](https://travis-ci.org/stedolan/jq.svg?branch=master)](https://travis-ci.org/stedolan/jq),
8
+ Windows: [![Windows build status](https://ci.appveyor.com/api/projects/status/mi816811c9e9mx29?svg=true)](https://ci.appveyor.com/project/stedolan/jq)
9
+
5
10
 
6
11
  If you want to learn to use jq, read the documentation at
7
12
  [https://stedolan.github.io/jq](https://stedolan.github.io/jq). This
@@ -10,25 +15,29 @@ You can also try it online at [jqplay.org](https://jqplay.org).
10
15
 
11
16
  If you want to hack on jq, feel free, but be warned that its internals
12
17
  are not well-documented at the moment. Bring a hard hat and a
13
- shovel. Also, read the wiki: https://github.com/stedolan/jq/wiki
18
+ shovel. Also, read the wiki: https://github.com/stedolan/jq/wiki, where
19
+ you will find cookbooks, discussion of advanced topics, internals,
20
+ release engineering, and more.
14
21
 
15
22
  Source tarball and built executable releases can be found on the
16
23
  homepage and on the github release page, https://github.com/stedolan/jq/releases
17
24
 
18
25
  If you're building directly from the latest git, you'll need flex,
19
- bison (3.0 or newer), libtool, make, and autoconf installed. To get
20
- regexp support you'll also need to install Oniguruma (note that jq's
21
- tests require regexp support to pass). To build, run:
22
-
23
- autoreconf -i # if building from git
24
- ./configure
26
+ bison (3.0 or newer), libtool, make, and autoconf installed.
27
+ To get regexp support you'll also need to install Oniguruma or clone it as a
28
+ git submodule as per the instructions below.
29
+ (note that jq's tests require regexp support to pass). To build, run:
30
+
31
+ git submodule update --init # if building from git to get oniguruma
32
+ autoreconf -fi # if building from git
33
+ ./configure --with-oniguruma=builtin
25
34
  make -j8
26
35
  make check
27
36
 
28
37
  To build without bison or flex, add `--disable-maintainer-mode` to the
29
38
  ./configure invocation:
30
39
 
31
- ./configure --disable-maintainer-mode
40
+ ./configure --with-oniguruma=builtin --disable-maintainer-mode
32
41
 
33
42
  (Developers must not use `--disable-maintainer-mode`, not when making
34
43
  changes to the jq parser and/or lexer.)
@@ -0,0 +1,53 @@
1
+ environment:
2
+ matrix:
3
+ - MSYSTEM: MINGW64
4
+ PATH: C:\msys64\usr\bin;C:\msys64\mingw64\bin;C:\Windows\System32;C:\Windows;%PATH%
5
+ - MSYSTEM: MINGW32
6
+ PATH: C:\msys64\usr\bin;C:\msys64\mingw32\bin;C:\Windows\System32;C:\Windows;%PATH%
7
+
8
+ clone_script:
9
+ - bash -lc "git clone -q --branch=$APPVEYOR_REPO_BRANCH https://github.com/${APPVEYOR_REPO_NAME}.git $APPVEYOR_BUILD_FOLDER"
10
+ - bash -lc "cd $APPVEYOR_BUILD_FOLDER && git checkout -qf $APPVEYOR_REPO_BRANCH"
11
+ - bash -lc "cd $APPVEYOR_BUILD_FOLDER && git submodule update --init --recursive"
12
+
13
+ install:
14
+ # update mysy2
15
+ - C:\msys64\usr\bin\bash -lc "pacman --needed --noconfirm -Sy pacman-mirrors"
16
+ - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Sy"
17
+ - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S autoconf automake bison flex"
18
+ - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S git"
19
+
20
+ build_script:
21
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && autoreconf -i"
22
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && ./configure --with-oniguruma=builtin --disable-shared --enable-static --enable-all-static"
23
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && make -j8"
24
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && cat jq.1 | groff -mandoc -Thtml > jq.html"
25
+ - 7z a jq-package.zip jq.1 jq.html jq.exe
26
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && pwd && ls -la"
27
+ - file jq.exe
28
+
29
+ test_script:
30
+ # tests/optionaltest and tests/shtest fail on Windows; run them
31
+ # anyways but ignore their failures. Also, trace shtest.
32
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && make -j3 SUBDIRS= 'TESTS=tests/mantest tests/jqtest tests/onigtest tests/base64test' check"
33
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && make SUBDIRS= TESTS=tests/optionaltest check || true"
34
+ - bash -lc "exec 0</dev/null && cd $APPVEYOR_BUILD_FOLDER && make SUBDIRS= TRACE_TESTS=1 TESTS=tests/shtest check || true"
35
+
36
+ artifacts:
37
+ - path: jq-package.zip
38
+ name: jq-package
39
+
40
+ - path: jq.exe
41
+ name: jq-exe
42
+
43
+ - path: test-suite.log
44
+ name: logs
45
+
46
+
47
+ on_failure:
48
+ - cat config.log
49
+ - cat test-suite.log
50
+ - appveyor PushArtifact test-suite.log
51
+ # also push the jq.exe so that someone can download it anyways...
52
+ - appveyor PushArtifact jq-package.zip
53
+
@@ -10,10 +10,10 @@ NJOBS="-j`sysctl -n hw.ncpu || echo 1`"
10
10
 
11
11
 
12
12
  # Get oniguruma
13
- rm -rf $PWD/build/ios onig-5.9.5
14
- echo "Downloading oniguruma 5.9.5"
15
- curl http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.5.tar.gz | tar xz
16
- cd onig-5.9.5
13
+ rm -rf $PWD/build/ios oniguruma-5.9.6
14
+ echo "Downloading oniguruma 5.9.6"
15
+ curl -L https://github.com/kkos/oniguruma/archive/v5.9.6.tar.gz | tar xz
16
+ cd oniguruma-5.9.6
17
17
 
18
18
  # So, we need to remake the configure scripts so that the arm64 architecture
19
19
  # exists in config.sub. In order to keep autoreconf from failing, create
@@ -50,7 +50,7 @@ for arch in i386 x86_64 armv7 armv7s arm64; do
50
50
 
51
51
 
52
52
  # Build oniguruma for this architecture
53
- cd onig-5.9.5
53
+ cd oniguruma-5.9.6
54
54
  CC=$CC CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS ./configure --disable-shared --enable-static --host=$HOST --prefix=$ORIG_PWD/build/ios/$arch
55
55
  STATUS=$?
56
56
  if [ $STATUS -ne 0 ]
@@ -1,4 +1,9 @@
1
- dnl AC_FIND_FUNC(func, arguments)
1
+ dnl AC_CHECK_MATH_FUNC(func)
2
2
  AC_DEFUN([AC_CHECK_MATH_FUNC], [
3
- AC_FIND_FUNC_NO_LIBS([$1], [m], [#include <math.h>], [$2])
3
+ AC_LANG(C)
4
+ AC_CHECK_LIB([m],[$1],[
5
+ eval "ac_tr_func=HAVE_[]upcase($1)"
6
+ AC_DEFINE_UNQUOTED($ac_tr_func)
7
+ ],[
8
+ ])
4
9
  ])
@@ -1,4 +1,7 @@
1
- m4_define([jq_version], m4_esyscmd_s([git describe --tags --dirty --match 'jq-*'|sed 's/^jq-//']))
1
+ m4_define([jq_version],
2
+ m4_esyscmd_s([(git rev-parse --verify -q jq-1.0 > /dev/null &&
3
+ (git describe --tags --dirty --match 'jq-*'|sed 's/^jq-//')) ||
4
+ echo `git rev-parse --abbrev-ref HEAD`-`git describe --always --dirty`])))
2
5
 
3
6
  AC_INIT([jq], [jq_version], [https://github.com/stedolan/jq/issues],
4
7
  [jq], [https://stedolan.github.io/jq])
@@ -9,7 +12,7 @@ m4_include([m4/ax_prog_bison_version.m4])
9
12
  dnl Created autoconf implementation thompson@dtosolutions, 26NOV12
10
13
  AC_PREREQ([2.64])
11
14
  AC_CONFIG_AUX_DIR([config])
12
- AM_INIT_AUTOMAKE([1.11.2 parallel-tests foreign -Wall])
15
+ AM_INIT_AUTOMAKE([1.11.2 subdir-objects parallel-tests foreign -Wall])
13
16
  AM_SILENT_RULES([yes])
14
17
  AM_PROG_AR
15
18
  AM_MAINTAINER_MODE([enable])
@@ -38,42 +41,9 @@ if test "$USE_MAINTAINER_MODE" = yes; then
38
41
  [AC_MSG_ERROR([You need bison version 3.0 or greater, or use --disable-maintainer-mode.])])
39
42
  fi
40
43
 
41
- AC_PROG_LEX
42
- if test "x$LEX" != xflex; then
43
- LEX="$SHELL $missing_dir/missing flex"
44
- fi
45
- fi
46
-
47
-
48
- ##########################################################################
49
- # check for ONIGURUMA library
50
- ##########################################################################
51
-
52
- AC_ARG_WITH([oniguruma],
53
- [AS_HELP_STRING([--with-oniguruma=prefix],
54
- [try this for a non-standard install prefix of the oniguruma library])],
55
- [ONIGURUMAPATHSET=1],
56
- [ONIGURUMAPATHSET=0])
57
-
58
- if test $ONIGURUMAPATHSET = 1; then
59
- CFLAGS="$CFLAGS -I${with_oniguruma}/include"
60
- LDFLAGS="$LDFLAGS -L${with_oniguruma}/lib"
61
- fi
62
-
63
- # check for ONIGURUMA library
64
- HAVE_ONIGURUMA=0
65
- AC_CHECK_HEADER("oniguruma.h",
66
- AC_CHECK_LIB([onig],[onig_version],[LIBS="$LIBS -lonig"; HAVE_ONIGURUMA=1;]))
67
-
68
- # handle check results
69
- if test $HAVE_ONIGURUMA != 1; then
70
- AC_MSG_NOTICE([Oniguruma was not found.])
71
- AC_MSG_NOTICE([ Try setting the location using '--with-oniguruma=PREFIX' ])
72
- else
73
- AC_DEFINE([HAVE_ONIGURUMA],1,[Define to 1 if Oniguruma is installed])
44
+ AC_CHECK_PROGS(LEX, flex lex)
74
45
  fi
75
46
 
76
-
77
47
  dnl Check for valgrind
78
48
  AC_CHECK_PROGS(valgrind_cmd, valgrind)
79
49
  if test "x$valgrind_cmd" = "x" ; then
@@ -82,6 +52,8 @@ fi
82
52
  AC_CHECK_FUNCS(memmem)
83
53
  AC_CHECK_FUNCS(mkstemp)
84
54
 
55
+ AC_CHECK_HEADER("shlwapi.h",[have_win32=1;])
56
+ AM_CONDITIONAL([WIN32], [test "x$have_win32" = x1])
85
57
 
86
58
  dnl Running tests with Valgrind is slow. It is faster to iterate on
87
59
  dnl code without Valgrind until tests pass, then enable Valgrind and
@@ -89,6 +61,15 @@ dnl fix leaks.
89
61
  AC_ARG_ENABLE([valgrind],
90
62
  AC_HELP_STRING([--disable-valgrind], [do not run tests under Valgrind]))
91
63
 
64
+ dnl Running tests with Valgrind is slow; address sanitizer (ASAN) is
65
+ dnl faster.
66
+ AC_ARG_ENABLE([asan],
67
+ AC_HELP_STRING([--enable-asan], [enable address sanitizer]))
68
+
69
+ dnl Undefined Behavior Sanitizer
70
+ AC_ARG_ENABLE([ubsan],
71
+ AC_HELP_STRING([--enable-ubsan], [enable undefined behavior sanitizer]))
72
+
92
73
  dnl Code coverage
93
74
  AC_ARG_ENABLE([gcov],
94
75
  AC_HELP_STRING([--enable-gcov], [enable gcov code coverage tool]))
@@ -117,7 +98,7 @@ AS_IF([test "x$enable_docs" != "xno"],[
117
98
  *****************************************************************
118
99
  * Ruby dependencies for building jq documentation not found. *
119
100
  * You can still build, install and hack on jq, but the manpage *
120
- * will not be rebuilt and some of the tests won't run. *
101
+ * will not be rebuilt and some of the tests will not run. *
121
102
  * See docs/README.md for how to install the docs dependencies. *
122
103
  *****************************************************************
123
104
  EOF
@@ -130,6 +111,8 @@ EOF
130
111
  ])
131
112
 
132
113
  AM_CONDITIONAL([ENABLE_VALGRIND], [test "x$enable_valgrind" != xno])
114
+ AM_CONDITIONAL([ENABLE_ASAN], [test "x$enable_asan" = xyes])
115
+ AM_CONDITIONAL([ENABLE_UBSAN], [test "x$enable_ubsan" = xyes])
133
116
  AM_CONDITIONAL([ENABLE_GCOV], [test "x$enable_gcov" = xyes])
134
117
  AM_CONDITIONAL([ENABLE_DOCS], [test "x$enable_docs" != xno])
135
118
  AM_CONDITIONAL([ENABLE_ERROR_INJECTION], [test "x$enable_error_injection" = xyes])
@@ -144,6 +127,8 @@ AC_FIND_FUNC([strftime], [c], [#include <time.h>], [0, 0, 0, 0])
144
127
  AC_FIND_FUNC([timegm], [c], [#include <time.h>], [0])
145
128
  AC_FIND_FUNC([gmtime_r], [c], [#include <time.h>], [0, 0])
146
129
  AC_FIND_FUNC([gmtime], [c], [#include <time.h>], [0])
130
+ AC_FIND_FUNC([localtime_r], [c], [#include <time.h>], [0, 0])
131
+ AC_FIND_FUNC([localtime], [c], [#include <time.h>], [0])
147
132
  AC_FIND_FUNC([gettimeofday], [c], [#include <time.h>], [0, 0])
148
133
  AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_TM_GMT_OFF],1,[Define to 1 if the system has the tm_gmt_off field in struct tm])],
149
134
  [], [[#include <time.h>]])
@@ -163,35 +148,68 @@ if test $enable_pthread_tls = yes; then
163
148
  fi
164
149
 
165
150
  dnl libm math.h functions
166
- AC_CHECK_MATH_FUNC(acos, [.5])
167
- AC_CHECK_MATH_FUNC(acosh, [.5])
168
- AC_CHECK_MATH_FUNC(asin, [.5])
169
- AC_CHECK_MATH_FUNC(asinh, [.5])
170
- AC_CHECK_MATH_FUNC(atan, [.5])
171
- AC_CHECK_MATH_FUNC(atanh, [.5])
172
- AC_CHECK_MATH_FUNC(cbrt, [.5])
173
- AC_CHECK_MATH_FUNC(cos, [.5])
174
- AC_CHECK_MATH_FUNC(cosh, [.5])
175
- AC_CHECK_MATH_FUNC(exp2, [.5])
176
- AC_CHECK_MATH_FUNC(exp, [.5])
177
- AC_CHECK_MATH_FUNC(floor, [.5])
178
- AC_CHECK_MATH_FUNC(j0, [.5])
179
- AC_CHECK_MATH_FUNC(j1, [.5])
180
- AC_CHECK_MATH_FUNC(log10, [.5])
181
- AC_CHECK_MATH_FUNC(log2, [.5])
182
- AC_CHECK_MATH_FUNC(log, [.5])
183
- AC_CHECK_MATH_FUNC(sin, [.5])
184
- AC_CHECK_MATH_FUNC(sinh, [.5])
185
- AC_CHECK_MATH_FUNC(sqrt, [.5])
186
- AC_CHECK_MATH_FUNC(tan, [.5])
187
- AC_CHECK_MATH_FUNC(tanh, [.5])
188
- AC_CHECK_MATH_FUNC(tgamma, [.5])
189
- AC_CHECK_MATH_FUNC(y0, [.5])
190
- AC_CHECK_MATH_FUNC(y1, [.5])
191
- AC_CHECK_MATH_FUNC(pow, [2,2])
192
- AC_CHECK_MATH_FUNC(atan2, [.5,.5])
193
- AC_CHECK_MATH_FUNC(hypot, [.5,.5])
194
- AC_CHECK_MATH_FUNC(remainder, [3,2])
151
+ AC_CHECK_MATH_FUNC(acos)
152
+ AC_CHECK_MATH_FUNC(acosh)
153
+ AC_CHECK_MATH_FUNC(asin)
154
+ AC_CHECK_MATH_FUNC(asinh)
155
+ AC_CHECK_MATH_FUNC(atan2)
156
+ AC_CHECK_MATH_FUNC(atan)
157
+ AC_CHECK_MATH_FUNC(atanh)
158
+ AC_CHECK_MATH_FUNC(cbrt)
159
+ AC_CHECK_MATH_FUNC(ceil)
160
+ AC_CHECK_MATH_FUNC(copysign)
161
+ AC_CHECK_MATH_FUNC(cos)
162
+ AC_CHECK_MATH_FUNC(cosh)
163
+ AC_CHECK_MATH_FUNC(drem)
164
+ AC_CHECK_MATH_FUNC(erf)
165
+ AC_CHECK_MATH_FUNC(erfc)
166
+ AC_CHECK_MATH_FUNC(exp10)
167
+ AC_CHECK_MATH_FUNC(exp2)
168
+ AC_CHECK_MATH_FUNC(exp)
169
+ AC_CHECK_MATH_FUNC(expm1)
170
+ AC_CHECK_MATH_FUNC(fabs)
171
+ AC_CHECK_MATH_FUNC(fdim)
172
+ AC_CHECK_MATH_FUNC(floor)
173
+ AC_CHECK_MATH_FUNC(fma)
174
+ AC_CHECK_MATH_FUNC(fmax)
175
+ AC_CHECK_MATH_FUNC(fmin)
176
+ AC_CHECK_MATH_FUNC(fmod)
177
+ AC_CHECK_MATH_FUNC(frexp)
178
+ AC_CHECK_MATH_FUNC(gamma)
179
+ AC_CHECK_MATH_FUNC(hypot)
180
+ AC_CHECK_MATH_FUNC(j0)
181
+ AC_CHECK_MATH_FUNC(j1)
182
+ AC_CHECK_MATH_FUNC(jn)
183
+ AC_CHECK_MATH_FUNC(ldexp)
184
+ AC_CHECK_MATH_FUNC(lgamma)
185
+ AC_CHECK_MATH_FUNC(log10)
186
+ AC_CHECK_MATH_FUNC(log1p)
187
+ AC_CHECK_MATH_FUNC(log2)
188
+ AC_CHECK_MATH_FUNC(log)
189
+ AC_CHECK_MATH_FUNC(logb)
190
+ AC_CHECK_MATH_FUNC(modf)
191
+ AC_CHECK_MATH_FUNC(lgamma_r)
192
+ AC_CHECK_MATH_FUNC(nearbyint)
193
+ AC_CHECK_MATH_FUNC(nextafter)
194
+ AC_CHECK_MATH_FUNC(nexttoward)
195
+ AC_CHECK_MATH_FUNC(pow10) # Not available with glibc version >= 2.27
196
+ AC_CHECK_MATH_FUNC(pow)
197
+ AC_CHECK_MATH_FUNC(remainder)
198
+ AC_CHECK_MATH_FUNC(rint)
199
+ AC_CHECK_MATH_FUNC(round)
200
+ AC_CHECK_MATH_FUNC(scalb)
201
+ AC_CHECK_MATH_FUNC(scalbln)
202
+ AC_CHECK_MATH_FUNC(significand)
203
+ AC_CHECK_MATH_FUNC(sin)
204
+ AC_CHECK_MATH_FUNC(sinh)
205
+ AC_CHECK_MATH_FUNC(sqrt)
206
+ AC_CHECK_MATH_FUNC(tan)
207
+ AC_CHECK_MATH_FUNC(tanh)
208
+ AC_CHECK_MATH_FUNC(tgamma)
209
+ AC_CHECK_MATH_FUNC(trunc)
210
+ AC_CHECK_MATH_FUNC(y0)
211
+ AC_CHECK_MATH_FUNC(y1)
212
+ AC_CHECK_MATH_FUNC(yn)
195
213
 
196
214
  dnl Thread local storage
197
215
  have___thread=no
@@ -200,7 +218,7 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([
200
218
  static __thread int x ;
201
219
  int main () { x = 123; return x; }
202
220
  ])], have___thread=yes)
203
- if test $have___thread = yes; then
221
+ if test $have___thread = yes; then
204
222
  AC_DEFINE([HAVE___THREAD],1,[Define to 1 if the system supports __thread])
205
223
  fi
206
224
  AC_MSG_RESULT($have___thread)
@@ -212,10 +230,54 @@ AC_C_BIGENDIAN(
212
230
  AC_MSG_ERROR(universial endianess not supported)
213
231
  )
214
232
 
233
+ dnl Oniguruma
234
+ AC_ARG_WITH([oniguruma],
235
+ [AS_HELP_STRING([--with-oniguruma=prefix],
236
+ [try this for a non-standard install prefix of the oniguruma library])], ,
237
+ [with_oniguruma=yes])
238
+
239
+ onig_CFLAGS=
240
+ onig_LDFLAGS=
241
+ build_oniguruma=no
242
+ AS_IF([test "x$with_oniguruma" != xno], [
243
+ save_CFLAGS="$CFLAGS"
244
+ save_LDFLAGS="$LDFLAGS"
245
+ AS_IF([test "x$with_oniguruma" != xyes], [
246
+ AS_IF([test "x$with_oniguruma" = xbuiltin], [
247
+ build_oniguruma=yes
248
+ ], [
249
+ onig_CFLAGS="-I${with_oniguruma}/include"
250
+ onig_LDFLAGS="-L${with_oniguruma}/lib"
251
+ ])
252
+ ])
253
+ AS_IF([test "x$build_oniguruma" = xno], [
254
+ # check for ONIGURUMA library, either in /usr or where requested
255
+ CFLAGS="$CFLAGS $onig_CFLAGS"
256
+ LDFLAGS="$LDFLAGS $onig_LDFLAGS"
257
+ AC_CHECK_HEADER("oniguruma.h",
258
+ AC_CHECK_LIB([onig],[onig_version]))
259
+ # handle check results
260
+ AS_IF([test "x$ac_cv_lib_onig_onig_version" != "xyes"], [
261
+ build_oniguruma=yes
262
+ AC_MSG_NOTICE([Oniguruma was not found. Will use the packaged oniguruma.])
263
+ ])
264
+ ])
265
+ AS_IF([test "x$build_oniguruma" = xyes -a -f "${srcdir}/modules/oniguruma/configure.ac" ], [
266
+ onig_CFLAGS="-I${srcdir}/modules/oniguruma/src"
267
+ onig_LDFLAGS="-L${srcdir}/modules/oniguruma/src -Wl,-rpath,${libdir}"
268
+ AC_CONFIG_SUBDIRS([modules/oniguruma])
269
+ AC_DEFINE([HAVE_LIBONIG],1,[Define to 1 if the system includes libonig])
270
+ ])
271
+ CFLAGS="$save_CFLAGS"
272
+ LDFLAGS="$save_LDFLAGS"
273
+ ])
274
+ AC_SUBST(onig_CFLAGS)
275
+ AC_SUBST(onig_LDFLAGS)
276
+
277
+ AM_CONDITIONAL([BUILD_ONIGURUMA], [test "x$build_oniguruma" = xyes])
215
278
  AC_SUBST([BUNDLER], ["$bundle_cmd"])
216
279
 
217
280
  AC_CONFIG_MACRO_DIR([config/m4])
218
281
  AC_CONFIG_FILES([Makefile])
219
282
  AC_OUTPUT
220
283
 
221
-
@@ -1,145 +1,24 @@
1
- require 'yaml'
2
- require 'bonsai'
3
- require 'liquid'
4
- require 'maruku'
5
- require 'json'
6
- require 'ronn'
7
- require 'tempfile'
8
- require 'yaml'
9
-
10
- module ExtraFilters
11
- def markdownify(input)
12
- Maruku.new(input).to_html
13
- end
14
-
15
- def sanitize(input)
16
- input.gsub(/[^a-zA-Z0-9_]/,"")
17
- end
18
-
19
- def json(input)
20
- input.to_json
21
- end
22
-
23
- def unique(input)
24
- @n = (@n || 0) + 1
25
- input + @n.to_s
26
- end
27
- end
28
-
29
- Liquid::Template.register_filter(ExtraFilters)
30
-
31
-
32
- task :serve do
33
- begin
34
- Bonsai.log "Press Control+C to quit"
35
-
36
- require 'rack'
37
- require 'sinatra'
38
- require 'watch'
39
- require 'launchy'
40
-
41
- Bonsai.root_dir = Dir.pwd
42
-
43
- server = fork {
44
- app = Rack::Builder.app {
45
- map "/jq" do
46
- use Bonsai::StaticPassThrough, :root => Bonsai.root_dir + "/output", :urls => ["/"]
47
- end
48
- run Bonsai::DevelopmentServer
49
- }
50
- Rack::Handler.default.run(app, :Port => 5000) do
51
- Launchy.open("http://localhost:5000/jq/")
52
- end
53
- }
54
- Watch.new("{content,templates,public}/**/*") { Bonsai::Exporter.process! }
55
- rescue Interrupt
56
- Process.kill("QUIT", server)
57
- Process.wait(server)
58
- exit
59
- end
60
- end
61
-
62
- task :build do
63
- Bonsai.root_dir = Dir.pwd
64
- Bonsai::Exporter.publish!
65
- end
66
-
67
- $BINARIES = {
68
- :osx32 => "--host=i686-apple-darwin10 CFLAGS='-m32 -g -O'",
69
- :osx64 => "--host=i686-apple-darwin10 CFLAGS='-m64 -g -O'",
70
- :win32 => "--host=i686-w64-mingw32 CFLAGS='-g -O'",
71
- :win64 => "--host=x86_64-w64-mingw32 CFLAGS='-g -O'",
72
- :linux32 => "--host=x86_64-linux-gnu CFLAGS='-m32 -g -O'",
73
- :linux64 => "--host=x86_64-linux-gnu CFLAGS='-m64 -g -O'"
74
- }
75
-
76
- $BINARIES.each do |name, args|
77
- file "../build/#{name}" do |t|
78
- sh "../scripts/crosscompile -j4 #{name} #{args}"
79
- end
80
- task :binaries => ["../build/#{name}"]
81
- end
82
-
83
- task :binaries => ["output/download"] do
84
- $BINARIES.each do |name, args|
85
- FileUtils.cp_r "../build/#{name}", "output/download/"
86
- end
87
- end
88
-
89
- def load_manual
90
- YAML::load(File.open("content/3.manual/manual.yml"))
91
- end
1
+ current_dir = File.dirname(__FILE__)
2
+ rakefile_manual = File.expand_path(File.join(current_dir, "Rakefile.manual"))
3
+ rakefile_website = File.expand_path(File.join(current_dir, "Rakefile.website"))
92
4
 
5
+ desc "Build the manpage from the bonsai source of the manual"
93
6
  task :manpage do
94
- Tempfile.open "manpage" do |f|
95
- manual = load_manual
96
- f.puts manual['manpage_intro']
97
- f.puts manual['body']
98
- manual['sections'].each do |section|
99
-
100
- f.puts "## #{section['title'].upcase}\n"
101
- f.puts section['body']
102
- f.puts ""
103
- (section['entries'] || []).each do |entry|
104
- f.puts "### #{entry['title']}\n"
105
- f.puts entry['body']
106
- f.puts ""
107
- (entry['examples'] || []).each do |example|
108
- f.puts " jq '#{example['program']}'"
109
- f.puts " #{example['input']}"
110
- f.puts " => #{example['output'].join(", ")}"
111
- f.puts
112
- end
113
- end
114
- f.puts ""
115
- end
116
- f.puts manual['manpage_epilogue']
117
- f.close
118
- puts Ronn::Document.new(f.path).convert('roff').gsub(/<\/?code>/,"")
119
- end
7
+ system %(#{$0} -f #{rakefile_manual} manpage)
120
8
  end
121
9
 
122
- task :manpage_default => ["default_manpage.md"] do
123
- puts Ronn::Document.new("default_manpage.md").convert('roff').gsub(/<\/?code>/,"")
10
+ desc "Collect jq unit test cases from the bonsai source of the manual"
11
+ task :mantests do
12
+ system %(#{$0} -f #{rakefile_manual} mantests)
124
13
  end
125
14
 
126
- task :mantests do
127
- load_manual['sections'].each do |section|
128
- (section['entries'] || []).each do |entry|
129
- (entry['examples'] || []).each do |example|
130
- puts example['program'].gsub("\n", " ")
131
- puts example['input']
132
- example['output'].each do |s| puts s end
133
- puts
134
- end
135
- end
136
- end
15
+ desc "Build the website from the bonsai sources"
16
+ task :build do
17
+ system %(#{$0} -f #{rakefile_website} build)
137
18
  end
138
19
 
139
- directory "output/download/source"
140
- task :tarball => ["output/download/source"] do
141
- sh "cd ..; ./configure && make dist && make distclean"
142
- sh "cp ../jq-*.tar.gz output/download/source"
20
+ desc "Serve a live view of the website on http://localhost:5000/jq/"
21
+ task :serve do
22
+ system %(#{$0} -f #{rakefile_website} serve)
143
23
  end
144
24
 
145
- task :dist => [:build, :binaries, :tarball]
@@ -0,0 +1,49 @@
1
+ require 'ronn'
2
+ require 'tempfile'
3
+ require 'yaml'
4
+
5
+ def load_manual
6
+ YAML::load(File.open("content/3.manual/manual.yml"))
7
+ end
8
+
9
+ task :manpage do
10
+ Tempfile.open "manpage" do |f|
11
+ manual = load_manual
12
+ f.puts manual['manpage_intro']
13
+ f.puts manual['body']
14
+ manual['sections'].each do |section|
15
+
16
+ f.puts "## #{section['title'].upcase}\n"
17
+ f.puts section['body']
18
+ f.puts ""
19
+ (section['entries'] || []).each do |entry|
20
+ f.puts "### #{entry['title']}\n"
21
+ f.puts entry['body']
22
+ f.puts ""
23
+ (entry['examples'] || []).each do |example|
24
+ f.puts " jq '#{example['program']}'"
25
+ f.puts " #{example['input']}"
26
+ f.puts " => #{example['output'].join(", ")}"
27
+ f.puts
28
+ end
29
+ end
30
+ f.puts ""
31
+ end
32
+ f.puts manual['manpage_epilogue']
33
+ f.close
34
+ puts Ronn::Document.new(f.path).convert('roff').gsub(/<\/?code>/,"")
35
+ end
36
+ end
37
+
38
+ task :mantests do
39
+ load_manual['sections'].each do |section|
40
+ (section['entries'] || []).each do |entry|
41
+ (entry['examples'] || []).each do |example|
42
+ puts example['program'].gsub("\n", " ")
43
+ puts example['input']
44
+ example['output'].each do |s| puts s end
45
+ puts
46
+ end
47
+ end
48
+ end
49
+ end