foundational_lib 1.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (396) hide show
  1. checksums.yaml +4 -4
  2. data/.git/COMMIT_EDITMSG +1 -0
  3. data/.git/FETCH_HEAD +1 -0
  4. data/.git/HEAD +1 -0
  5. data/.git/ORIG_HEAD +1 -0
  6. data/.git/config +11 -0
  7. data/.git/description +1 -0
  8. data/.git/hooks/applypatch-msg.sample +15 -0
  9. data/.git/hooks/commit-msg.sample +24 -0
  10. data/.git/hooks/fsmonitor-watchman.sample +173 -0
  11. data/.git/hooks/post-update.sample +8 -0
  12. data/.git/hooks/pre-applypatch.sample +14 -0
  13. data/.git/hooks/pre-commit.sample +49 -0
  14. data/.git/hooks/pre-merge-commit.sample +13 -0
  15. data/.git/hooks/pre-push.sample +53 -0
  16. data/.git/hooks/pre-rebase.sample +169 -0
  17. data/.git/hooks/pre-receive.sample +24 -0
  18. data/.git/hooks/prepare-commit-msg.sample +42 -0
  19. data/.git/hooks/push-to-checkout.sample +78 -0
  20. data/.git/hooks/update.sample +128 -0
  21. data/.git/index +0 -0
  22. data/.git/info/exclude +6 -0
  23. data/.git/logs/HEAD +27 -0
  24. data/.git/logs/refs/heads/main +27 -0
  25. data/.git/logs/refs/remotes/origin/HEAD +1 -0
  26. data/.git/logs/refs/remotes/origin/main +25 -0
  27. data/.git/objects/00/532267a2410a9413a9d6bc7f02a018aace9128 +0 -0
  28. data/.git/objects/02/92950b287a29c4f23c715bb59b23c5e5aeeff4 +0 -0
  29. data/.git/objects/03/0cb5eda02d3105589f3863e44f530b7824c600 +0 -0
  30. data/.git/objects/04/9f23c8ec4944fa3f2a1918b4a9d66a172b19fe +0 -0
  31. data/.git/objects/04/a5507142826ef75c59fb610ee3fc20d3c6b031 +0 -0
  32. data/.git/objects/07/54f940494495382bdd30e48f21b301b6e8fbdb +0 -0
  33. data/.git/objects/07/69ab2e1f09514fa57b9be9f480556804d3df85 +0 -0
  34. data/.git/objects/07/8348cdae27acf8469450c675aec0e802398562 +0 -0
  35. data/.git/objects/09/772b4ba1d8f5b6cbe89892f1ee114b948f79f1 +0 -0
  36. data/.git/objects/0a/22d14d22d804770b4e8bf7e054fdb699292f41 +0 -0
  37. data/.git/objects/0d/d6e007ad4ecd58e092f6c6aaa6f17025c316aa +0 -0
  38. data/.git/objects/0e/01d507c91bd85a09add07c0b724c82a4056d8b +0 -0
  39. data/.git/objects/0f/7072d664352c8a662758307c604058bcdc906f +0 -0
  40. data/.git/objects/10/523993d5acdb3c3793f9517d06a2c881ba4548 +0 -0
  41. data/.git/objects/12/b3374b40998e1b1a34ad40ff74333eece813be +0 -0
  42. data/.git/objects/12/de91923a40d18ed5b72a6ab672e1ff044c72b6 +0 -0
  43. data/.git/objects/15/0213dbc3d16d7f3c65e6b69c78c883f0e34596 +0 -0
  44. data/.git/objects/15/ad02ee7be20c538e46d8adeb90f1972efacdaa +0 -0
  45. data/.git/objects/16/95856168200cae5d99d449dfc204b229dbb17a +0 -0
  46. data/.git/objects/16/beaf905c21fa5f513a4d118b87994651635dbb +0 -0
  47. data/.git/objects/16/cc2abbd6cefb91cb96e0884445a8895669ce86 +0 -0
  48. data/.git/objects/17/214adf7f473e321308f5f346abbda2dee66d79 +0 -0
  49. data/.git/objects/17/e7d5d6977620099e67a69ab4ed24bb7d01d454 +0 -0
  50. data/.git/objects/1a/332b88588aef000b8bc8ad1c94fe8ae8576f89 +0 -0
  51. data/.git/objects/1b/3112a51144709de16cb45ba7d4b13ddf016b6d +0 -0
  52. data/.git/objects/1c/67c9bf48e2a3cacc8b93794f6489992eee509f +0 -0
  53. data/.git/objects/1d/3e948d46a609fe434932fbc1257a5e62e5afeb +0 -0
  54. data/.git/objects/1d/4fd4740f8497087ce08a05cbadc9b79a822c75 +0 -0
  55. data/.git/objects/1e/06b35084504da0dfc9073a17a432adbc1d6d7e +0 -0
  56. data/.git/objects/1f/08f25db6c3fdd0862565366393dca777914e62 +0 -0
  57. data/.git/objects/1f/2fa87331a4c66993b956d587fb5c2efcb3db9c +0 -0
  58. data/.git/objects/21/54cbb25ecebeaf645a930b25a6a2d95b681f71 +0 -0
  59. data/.git/objects/27/6e1260fe53dd9833ff70da583e4e5c7eae67c6 +0 -0
  60. data/.git/objects/29/5dd5326db7fc998f7d73f148f84fac0b73671a +0 -0
  61. data/.git/objects/29/871f42fc948741e2f1d350e7f19e685bf88af1 +0 -0
  62. data/.git/objects/2a/a8818e606c8962b0944ca0146699a6e132475e +0 -0
  63. data/.git/objects/2c/47cf15f5be820e51d0ec0feac2a875024609ca +0 -0
  64. data/.git/objects/2c/6d85f01c1f29eb336357304ba65837694cbdb9 +0 -0
  65. data/.git/objects/2d/5020e0e85bba4be6dba808594c0d59b6167620 +0 -0
  66. data/.git/objects/2f/89d67e72e9473ded3c003c3c187d35e969f392 +0 -0
  67. data/.git/objects/30/c0d5aeda2f091c8a5605b56e00020e89cbf9ee +0 -0
  68. data/.git/objects/31/1816feee3f818927d36abcac64c9401fb47f81 +0 -0
  69. data/.git/objects/31/7c65f28b92ea811a04c91a6de95dfbb9120e67 +0 -0
  70. data/.git/objects/32/8ca5e0cf402024175c9cb2cc45edc242d99e2d +0 -0
  71. data/.git/objects/32/a7a681a8ac4beeb788337133d508336537d735 +0 -0
  72. data/.git/objects/33/f3536f37dcbe6e6925674355423982ae932b93 +0 -0
  73. data/.git/objects/35/1033eb3a3944e36708028413982461ddb7c3a9 +0 -0
  74. data/.git/objects/35/110352d40e047b0b171d1ee0a0c64d2f6ec209 +0 -0
  75. data/.git/objects/36/a6ec04bc4a9a4ab86d08c42bf437fcf396acc8 +0 -0
  76. data/.git/objects/36/adf4f09d243cdee8e30a7d229e1e4a8a45280c +0 -0
  77. data/.git/objects/38/5f4ef018617f3388c2be8ab81097439ed4d704 +0 -0
  78. data/.git/objects/3a/2a89fbf159db5ba8b123e55f59a9dea3e59677 +1 -0
  79. data/.git/objects/3b/c1c39ad5587fc58026120da1282d9a0af36beb +0 -0
  80. data/.git/objects/3b/f952b58df80be52d6be4fa52efb3a7d52f524c +0 -0
  81. data/.git/objects/3c/0bd1df087947c951a25aeea67fc4f93f06e4cd +0 -0
  82. data/.git/objects/3c/321c72649b14fd5247dffad8250ddae0dde690 +0 -0
  83. data/.git/objects/3e/2e6ec01c90761d9b442dd0c3cbaf94ec3d2407 +0 -0
  84. data/.git/objects/3e/4dd4d32eba201c520438afc04d8fd8ad20643f +0 -0
  85. data/.git/objects/40/9221497aa2a340d166f1cf87d23a8bdc258a6c +0 -0
  86. data/.git/objects/41/7b37cad97a2a38834e5a9a05c9566b2d454c87 +0 -0
  87. data/.git/objects/42/23c5222da53b5e227d5d00f253bc3f0ab99eaf +0 -0
  88. data/.git/objects/42/34e568cd07cf49483fe4623dde87f06dab41c0 +0 -0
  89. data/.git/objects/42/5656d20e99f1d76d0aab1f410f9c8043ba8960 +0 -0
  90. data/.git/objects/42/5c7a55736cd5d8346eaf5398e37978737724d9 +0 -0
  91. data/.git/objects/42/9e4c68556442a4ec6b55b5c0ffb6f4d75c47d9 +0 -0
  92. data/.git/objects/43/3c340aaa45bc10da9694bddfe96f3eb95f2e4b +0 -0
  93. data/.git/objects/43/c04a20d303f3cb461e64ca4e3e7615b69f11dd +0 -0
  94. data/.git/objects/44/f4375bb2305a2f72e9f54d4c31fee4d87e26b9 +0 -0
  95. data/.git/objects/44/fba8246cd5f6b13a232896bd09c963408e6373 +0 -0
  96. data/.git/objects/45/a1398c16a993f21751dae55da62ed0d16b0ed2 +0 -0
  97. data/.git/objects/46/a631149b0e74d87cdc35a50e80d1c9cb87231a +0 -0
  98. data/.git/objects/46/ae76b29f12762e758ead9ada45d22f1992f329 +0 -0
  99. data/.git/objects/46/c8b961a9e371de76018f5cbb440a26aab1bf53 +0 -0
  100. data/.git/objects/47/b536e9320e93be0aa9dea8f6887dcb2c86be79 +0 -0
  101. data/.git/objects/48/13aa6ecbb9a292bb9543359d860ec50e382586 +0 -0
  102. data/.git/objects/49/1a90b22585c925267f697cfd052c4a6a6759bc +0 -0
  103. data/.git/objects/4b/9e2b3e74e265f6d722659b6f7d991a2c288042 +0 -0
  104. data/.git/objects/4b/d3f623e59500d564925cc42bcb624825f1a4ae +0 -0
  105. data/.git/objects/4b/e9d3a9d08b98a821c2b53110e6aa822748cde8 +0 -0
  106. data/.git/objects/4c/5dd9b6cebf1724d35bbf5bee370d1f743e99a1 +0 -0
  107. data/.git/objects/4c/7b91b3b8d8783e6dc2f7b001589204db816d56 +0 -0
  108. data/.git/objects/4f/a005e4c6ea6acd3392710a9fffd8d6b2b10403 +0 -0
  109. data/.git/objects/50/715a800008747edde3da699372a919e1d5ffa0 +3 -0
  110. data/.git/objects/50/bfeafaf6b313cca92f588d08538e3036a14b1f +0 -0
  111. data/.git/objects/52/3e80a60194d99b4ec5af5637e0e110ff8c6bfc +0 -0
  112. data/.git/objects/53/e0f911a8d6a7dd59bff2590e62e9403590dd18 +0 -0
  113. data/.git/objects/54/7357178f718df7868fc8ec59f09c71f0b44951 +0 -0
  114. data/.git/objects/55/dad34b112f4fd953167e9478175a94b96498c3 +1 -0
  115. data/.git/objects/57/3a9a5500dfabf6686187dca0b1316464055b58 +0 -0
  116. data/.git/objects/57/9a5e8a4c5a82ca984b65eac10d790ca0731b3b +0 -0
  117. data/.git/objects/57/f5c14cffdcfe90f06a05463f5b738cad1fab34 +0 -0
  118. data/.git/objects/58/1b4137b2ec1ee4397a637e2cb438673ad1a50a +0 -0
  119. data/.git/objects/58/bf822ced827b42941bf28cf7813f8f7329a1b8 +0 -0
  120. data/.git/objects/59/108654f6d46284efe01268971e791be66e7997 +0 -0
  121. data/.git/objects/59/2a983b391b992a22ededf7ef59fe6251432834 +0 -0
  122. data/.git/objects/5c/50ba3fa3ede0da6020128932d9ce867ee2b63a +0 -0
  123. data/.git/objects/5c/616a3dfec3e7723e02173e60ba5b95a92c84e8 +0 -0
  124. data/.git/objects/5c/c3bf3a0bc1d8d7e7b04d74f721578ab7b680b8 +0 -0
  125. data/.git/objects/5d/0da29d70e94ce6db02cc99e1004ff910e75ddc +0 -0
  126. data/.git/objects/60/4955107c326a523483e0e252f7d47ee1627f46 +0 -0
  127. data/.git/objects/61/7ad0c8a63e7ace41d93101d1f259880ec05b58 +1 -0
  128. data/.git/objects/61/ffa3d1c96508f0bd77d204740841e041dbf57a +0 -0
  129. data/.git/objects/63/8584202930600315aae4a34adb96107014e9b5 +0 -0
  130. data/.git/objects/65/605d3c143363021fa10125a6e75ce9ba15aedc +0 -0
  131. data/.git/objects/65/90984641253a911a0cfd3c3478082eccc238d3 +0 -0
  132. data/.git/objects/65/de2d254fe94748b197e38e04bffad8581bd4fa +0 -0
  133. data/.git/objects/67/1c50f5a5b2f0c6c264be59104fe6f66ee61b11 +0 -0
  134. data/.git/objects/67/7974286b5814fcfcca0e8f8364b28a75fb4d5a +0 -0
  135. data/.git/objects/69/aa6cfe350b91738a773bec648c4a2d6fea05c2 +0 -0
  136. data/.git/objects/6a/ceebd5076486890f7b3a9c6ea1d29df629d445 +0 -0
  137. data/.git/objects/6b/c2e56ca244545d7e9ff3ed8aa4cfe45aaf7d94 +0 -0
  138. data/.git/objects/6d/11539e01fe1f107b0b455332c5c313748aec14 +0 -0
  139. data/.git/objects/6d/51d4ac741fa6aea3e840209b615a0c9eb3750b +0 -0
  140. data/.git/objects/6e/e7d85f1bd2d4b10d58e32063dce83cf9d05dad +0 -0
  141. data/.git/objects/71/23b179004a00da10329c84e604f04a8af735e0 +0 -0
  142. data/.git/objects/73/9356ead076e21a4630af30c293bafaa3d4dae8 +0 -0
  143. data/.git/objects/73/cb7297a8aa1a99fe1e8ce4a8e938e7d00ae2bd +1 -0
  144. data/.git/objects/74/c19fa2fc26b701116d9772d03cceb3e1b29940 +0 -0
  145. data/.git/objects/75/3273edad19e0ab178b0e9bac485cb754db895a +0 -0
  146. data/.git/objects/75/61ceb3105c1d065a1bee58fe063d6c1d21b86f +0 -0
  147. data/.git/objects/76/a507cfafc3c79714fc89453a2f593e3c3bef30 +0 -0
  148. data/.git/objects/76/e5edf4f14732835e3370ad86dc8feeeb2ee8d8 +0 -0
  149. data/.git/objects/76/f2f8d8aebf4eb112dd0089298dd836feb81698 +0 -0
  150. data/.git/objects/77/22a35c2f77a245f21c26eb9615ab8ed8cb35e1 +0 -0
  151. data/.git/objects/78/cf5f29387e623098f4513872e3f0d91cee95e3 +0 -0
  152. data/.git/objects/79/5310a749ef84738000dd37c2cd29e08acb6b92 +0 -0
  153. data/.git/objects/7b/0b5664fe3dbfb86f8c0100e13cc9a9fef7012a +0 -0
  154. data/.git/objects/7f/6e703bd66a61d8e4b6e03291a0b6aa22c476cd +0 -0
  155. data/.git/objects/80/023bde1835da3fe457ea20a958130a520886f7 +0 -0
  156. data/.git/objects/80/2967e64b8ea0a9fce9072f1cdfd2cb90374051 +0 -0
  157. data/.git/objects/82/7f56ee6cde9f25556cfed1cf42f64576e8d8e4 +0 -0
  158. data/.git/objects/83/b1757d87094d1c39dd8aae948ca65e15fdb08e +0 -0
  159. data/.git/objects/84/83e26521948d5dbdac20d7020d91e180b8076b +0 -0
  160. data/.git/objects/85/4bf7ab1247a699742cb40a96a84acd299d2900 +0 -0
  161. data/.git/objects/85/77fc0a6944ebd46e716d06b5586fa70b8a2474 +0 -0
  162. data/.git/objects/85/b6cfcdf3dfbcd47cb0ac25f00411f8f19f4fe9 +0 -0
  163. data/.git/objects/86/86c08d64a36f98f72c1e642a4853bdf1f0e9b8 +6 -0
  164. data/.git/objects/87/1438aba9120e95c7583c45d23dfa5220a3024c +0 -0
  165. data/.git/objects/87/cbda974dfcdbbe58f42d33aa3751b7605250a2 +0 -0
  166. data/.git/objects/88/c4dc6afa1f690b74a9906ae4e57b9d0384dc15 +0 -0
  167. data/.git/objects/88/c7d1036ff737f307566f945b4360d1c70715c4 +0 -0
  168. data/.git/objects/89/8596792d05f226445dada52e5a9690841b3de6 +0 -0
  169. data/.git/objects/89/b7e7bf5e8d358b927e8576bae0799b66ade624 +0 -0
  170. data/.git/objects/8a/588c5c892d239d2c10e492b701b9567835b042 +0 -0
  171. data/.git/objects/8a/6fdd2d0ed78ecc1c2cd0dfad3dcaeec4f3317f +0 -0
  172. data/.git/objects/8a/ccd0765330817fb04a1b89003f654ee9478a18 +0 -0
  173. data/.git/objects/8e/3ea49c798a7a1e49fcc2ca38f5e2b2d2988f91 +0 -0
  174. data/.git/objects/8e/65617ecae3000602731c83c3407b307901c908 +0 -0
  175. data/.git/objects/8e/f8b63d0bf45a2ac0b7ed79ac17d204234d4e5f +0 -0
  176. data/.git/objects/8f/af8ea2da0b68f9b54a9ee3cb299be24fc5022c +0 -0
  177. data/.git/objects/8f/dc70de645f9edae436dc5b03d7a0e1b46a350e +0 -0
  178. data/.git/objects/91/4c85f619bce90743bd5d2dcb5954967577be77 +0 -0
  179. data/.git/objects/92/e830c132bbce46a30c87683200ca66a47d05f1 +0 -0
  180. data/.git/objects/93/0aabbd1f0c689be71456c9da78be60f60b3062 +0 -0
  181. data/.git/objects/93/3e2ec86a89397f2ff985374f0a7f90217c3996 +0 -0
  182. data/.git/objects/94/b08375a059107e583d85370bf415623e99038e +0 -0
  183. data/.git/objects/95/3a4300d2211955b05f88bfe18ad8bf15f68014 +0 -0
  184. data/.git/objects/95/e1325889bd2e42730aee64bb80689606e5b1ca +0 -0
  185. data/.git/objects/97/904af9a6eb8bd7f09b058dd975f16d62c6f2aa +3 -0
  186. data/.git/objects/97/d6be023d6630caf7d8739b5e4c9ecaea830d95 +0 -0
  187. data/.git/objects/98/acb7c83fe46f6142f4a3fa12eb1e5077f0d3e7 +1 -0
  188. data/.git/objects/9a/761c3f0cfc6089b52a3c291af5333fec65347e +0 -0
  189. data/.git/objects/9b/8d95b448bf9536091b586fc06753f125f6d733 +0 -0
  190. data/.git/objects/9c/5e2c59ba1ef872137790357322b279cc08a4d7 +0 -0
  191. data/.git/objects/9e/a455393b61a35d8c0c87ccc2b88c71267e2440 +0 -0
  192. data/.git/objects/9f/409cd98dbb3e3990aee433d7cc9cd721d0dd7b +0 -0
  193. data/.git/objects/a1/3530815e0b171a98b95e8aa0248a6ec0f9bffa +0 -0
  194. data/.git/objects/a4/9a242150daae0348b308780b998041f1cdea4b +2 -0
  195. data/.git/objects/a6/5c1fa0fca5d6ebba5bbb5141a84e3c978115fb +0 -0
  196. data/.git/objects/a8/4814a23439ad139507bbc5b58b0e4b445881dc +0 -0
  197. data/.git/objects/a9/f288fd22e1f012b7bfab0d6660cb218d1b536d +0 -0
  198. data/.git/objects/ac/702f3eed22e55060d5b6f1179c3761d13d9f47 +0 -0
  199. data/.git/objects/ad/162c05084f239592a72db6f1b1b3dd697b0bfc +0 -0
  200. data/.git/objects/ad/a578bf3cac6f6914f75f796eecd287f7cf1793 +0 -0
  201. data/.git/objects/ad/f012e51869f37a73de9969190bed3a84ff91bf +0 -0
  202. data/.git/objects/ae/609e682d223752a2248bad25fd14b72f5b4235 +0 -0
  203. data/.git/objects/af/30f39b420d77ce9b21094443f7e7c8273712cc +0 -0
  204. data/.git/objects/af/49c3211b0c488da9ad95cda7ec7c41bda90555 +0 -0
  205. data/.git/objects/af/845cf155d112d1b2b011a8bb19b0b3c75aa322 +0 -0
  206. data/.git/objects/b0/d84d2bf43a20e08d2ead61bbe4dc84241393ee +0 -0
  207. data/.git/objects/b0/da1ea9ad213ece6e39b4e8643659406a1dd5e8 +0 -0
  208. data/.git/objects/b0/fc2e7068c4a50d9b1dda0a2efb8bdd4b7213fc +0 -0
  209. data/.git/objects/b1/1f595a84a8a97a27ad971c239c4156f26fb9c5 +0 -0
  210. data/.git/objects/b1/4e8121f7223553f42b21f525907feaf302a4f1 +0 -0
  211. data/.git/objects/b2/0a870e2a9aeda632e2fbcbc375649b38663836 +0 -0
  212. data/.git/objects/b2/502b10400b9a1e39bc04bcf07d53ca9316fc4a +0 -0
  213. data/.git/objects/b2/d9b22d82db0b49e4d28f57ea195b553df38488 +0 -0
  214. data/.git/objects/b3/c0d4f0f833b9814969834e5c8ed31d5118307d +0 -0
  215. data/.git/objects/b6/0f4e788de3bb480059bf0324a1145acce31f53 +3 -0
  216. data/.git/objects/b6/9e68b25a16311171217d8cbce65b4c8bb5bfaa +0 -0
  217. data/.git/objects/b8/1717e1af5982f34f8252342e91fa46cc2cb960 +0 -0
  218. data/.git/objects/b8/90a007fb8f1f74bf7498eb3b61b6d3a707cf87 +0 -0
  219. data/.git/objects/b9/7c6a42519cc0542e876d46664fcb299f8b5210 +0 -0
  220. data/.git/objects/b9/9e2a6e164d718d7b6adf7496131b300eb4ca27 +0 -0
  221. data/.git/objects/b9/b259902b8be129855fe0e05bc656eacdc0c02e +0 -0
  222. data/.git/objects/ba/f320e8bc8098b63ea1b43521ad0a4cb0f9b6f9 +0 -0
  223. data/.git/objects/bb/08cda144fdf72b18efcecc67af5199a333095d +0 -0
  224. data/.git/objects/bc/955cbb90f7e34ff964c6d8bb77500b69f87de6 +0 -0
  225. data/.git/objects/bd/97f943abbc60cf673867e694fea1fdd41a1b82 +0 -0
  226. data/.git/objects/be/37241113f5603a92c7e388b75454eb9c5d5f2b +0 -0
  227. data/.git/objects/c1/8e33066ce84696982fc07b139c460d6ebcacba +0 -0
  228. data/.git/objects/c1/ce16372041473081a87402e194f319a3b43d3c +0 -0
  229. data/.git/objects/c1/da2f676577c87c2369973c4a340b83b3e6ca9a +0 -0
  230. data/.git/objects/c3/5adef21721540777b656841d0eeb9fd7467eb9 +1 -0
  231. data/.git/objects/c7/656c6221117cf6ac6c6c29b58b722318135537 +0 -0
  232. data/.git/objects/c8/1b49d16c92ca71c5a08239cae4a4bc783ca81b +0 -0
  233. data/.git/objects/c9/6d75025da99fffaf7b4a7291b7b13f63640387 +0 -0
  234. data/.git/objects/c9/9816e2751f04ed55b454c11dbe777acb8c5a5f +0 -0
  235. data/.git/objects/c9/a23b8a10341ed48a19e1a8e4293b53e7a9b2c2 +0 -0
  236. data/.git/objects/ca/94978ca40b5a963ab555d63f10b2ad68ec8d88 +0 -0
  237. data/.git/objects/cc/df4a7ff895d7bae8c5fd1b79d3864b6884ae61 +0 -0
  238. data/.git/objects/ce/51192135510d50b5dfbd321278cfad059efecf +0 -0
  239. data/.git/objects/cf/20e52891d7d1460c79965d17c187cdd7f58e54 +0 -0
  240. data/.git/objects/cf/ab35891da2e0007be7dd1bd58fa36208c19a46 +3 -0
  241. data/.git/objects/d0/15f6c280751335e6ed3a942cd2d8557949842f +0 -0
  242. data/.git/objects/d0/5592b590ec4c22add66be4ca4b1b9f94e51e4f +0 -0
  243. data/.git/objects/d1/5bdfb9f42d0f0da7a5484d7cc21629ff5fceda +0 -0
  244. data/.git/objects/d4/fb0c0db1fc2795b00662cab56b1fd9c6ce1d35 +0 -0
  245. data/.git/objects/d5/4416b65afd1723048205149ec4e7012f209e8d +0 -0
  246. data/.git/objects/d5/cf708373fd1e9fd79185f5ffde8404fa847de6 +0 -0
  247. data/.git/objects/d5/fc3b40e30c61c8ca6e9313e1e1c03f484e3149 +0 -0
  248. data/.git/objects/d6/e86fec9c5e4f5cc5113ee34d1d1ff520c83e61 +0 -0
  249. data/.git/objects/d8/6f23474afc9e129a4043c7cdc4b2ee7fa34559 +0 -0
  250. data/.git/objects/da/c1df148b921b512e23be126c705b00b841722a +0 -0
  251. data/.git/objects/db/dc3d0cb4546514c8c260144d555bd352c0cc3a +0 -0
  252. data/.git/objects/dd/6955ae1ddb587a249b7a931bddfbcf589fc1f3 +0 -0
  253. data/.git/objects/df/807a138123e92f6c27e879170945103a898480 +0 -0
  254. data/.git/objects/e0/116700a878f741d6d84d740f2a164a5bef0a7b +0 -0
  255. data/.git/objects/e0/2e89cd7c67c0a86c4f132487b33a1ac6907501 +0 -0
  256. data/.git/objects/e1/169770847dedc7ab223e2be01b95e18cb8fc0c +0 -0
  257. data/.git/objects/e1/397c920a0304999e994ebe6fe770104faa2d61 +0 -0
  258. data/.git/objects/e1/42ca5d63d58a24bdaf0183eeb1d6bee27ea238 +0 -0
  259. data/.git/objects/e1/ab5686a290652db4d2eb29bf59b532ce912595 +0 -0
  260. data/.git/objects/e2/cfd732361a594f84ff0990e36cdd6695218529 +0 -0
  261. data/.git/objects/e3/b4dbfd7862f382f79c051fec7b04e72de03802 +0 -0
  262. data/.git/objects/e3/fbdebb5dbb7f7389fab9d46db69811f221aaa9 +0 -0
  263. data/.git/objects/e5/83178f2654426209aba90207c508399749da22 +0 -0
  264. data/.git/objects/e6/133e71589050058c1b0521658a65d5290ae4bd +0 -0
  265. data/.git/objects/e6/800deb29bff34214bcbb854bd4ec3e62dc4dd3 +0 -0
  266. data/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  267. data/.git/objects/e6/acb910d78c2b0b0a6e0b0155719898a22d5583 +0 -0
  268. data/.git/objects/e7/4973f39d8f117309adb70f24fa07b80263bcac +0 -0
  269. data/.git/objects/e7/d74c0f195857b306ba0a6f73d43836918ad6fb +0 -0
  270. data/.git/objects/e8/76152cdc5b8cce61adb4bb44cfa1237b575983 +0 -0
  271. data/.git/objects/e9/0a7063a3c8a566b460df0e4079a1526b56a79e +0 -0
  272. data/.git/objects/e9/558e126cbe9e68f923d5b262a5d6194f4cf8c3 +0 -0
  273. data/.git/objects/ea/1c53924c75bb69df9fc50f84e81aace41b8c21 +0 -0
  274. data/.git/objects/ed/69fe4dd0ae36a070a04d72379ec50247271a18 +0 -0
  275. data/.git/objects/ed/9b83b4267bd876197350d7e4617684ec9882d9 +0 -0
  276. data/.git/objects/ef/b37c03f527f58473284146dbadbe1694d0fa3b +0 -0
  277. data/.git/objects/f0/58c32b3ab7357eff1a0eca487589bc9b1ca42e +0 -0
  278. data/.git/objects/f0/aede82c486b78d116291e6c9e8e65884cc4618 +0 -0
  279. data/.git/objects/f0/b75a404e2855e3b7d204d16ed6137b50db5261 +0 -0
  280. data/.git/objects/f2/2c13cd1bc1c597d5de4cfd9c7351bbea6708fd +1 -0
  281. data/.git/objects/f2/425c1f516d38a2496374eb95f29b8f9ebb3296 +0 -0
  282. data/.git/objects/f4/3fd277a7c97e30b9582461d0300bbe3995567d +0 -0
  283. data/.git/objects/f4/9f3c32db452dad8c55874a80eb1959a4c797d0 +0 -0
  284. data/.git/objects/f7/a47bfbca414f7271ed3b56e693f208b85a2992 +2 -0
  285. data/.git/objects/f8/10deedf79be859e6405779deba5b0be580ca9b +0 -0
  286. data/.git/objects/f8/e0bced30e2f77555435a3f55e9db82e00cb88c +0 -0
  287. data/.git/objects/f8/f30942541b104b06f17352899ffe9b7e85f99c +0 -0
  288. data/.git/objects/fa/284ee33f0bc79030e6f3b1f8956842ae934db4 +0 -0
  289. data/.git/objects/fb/915e6e729a32a4b39dc51bb3799ffe36d39304 +0 -0
  290. data/.git/objects/fd/e79b186322a8f111b933b0adc5d9a2ec34ae62 +0 -0
  291. data/.git/objects/fe/1e7d78df1b52f24e0c27bb2757504c4d09af9d +0 -0
  292. data/.git/objects/fe/a998d1902b77fd02d827513a9cc6a25a986a89 +0 -0
  293. data/.git/objects/ff/5078f7a812ea6f6d33a0f6f741fce50933e6b2 +0 -0
  294. data/.git/objects/pack/pack-e2c1d6571f6735046d7e4fc70b43106f333582a6.idx +0 -0
  295. data/.git/objects/pack/pack-e2c1d6571f6735046d7e4fc70b43106f333582a6.pack +0 -0
  296. data/.git/packed-refs +2 -0
  297. data/.git/refs/heads/main +1 -0
  298. data/.git/refs/remotes/origin/HEAD +1 -0
  299. data/.git/refs/remotes/origin/main +1 -0
  300. data/AI_Media_Demonstration/Default_A_methodology_to_solve_all_problems_by_enabling_humans_3.jpg +0 -0
  301. data/AI_Media_Demonstration/Default_Person_Becoming_sane_again_after_success_while_feeling_3.jpg +0 -0
  302. data/AI_Media_Demonstration/Default_Person_Finding_and_take_environmental_data_research_co_0.jpg +0 -0
  303. data/AI_Media_Demonstration/Default_Person_Finding_and_take_environmental_data_research_co_1.jpg +0 -0
  304. data/AI_Media_Demonstration/Default_Person_Finding_and_take_environmental_data_research_co_2.jpg +0 -0
  305. data/AI_Media_Demonstration/Default_Person_Finding_and_take_environmental_data_research_co_3.jpg +0 -0
  306. data/AI_Media_Demonstration/Default_Person_Fixating_1.jpg +0 -0
  307. data/AI_Media_Demonstration/Default_Person_Fixing_Existential_Limitations_Problem_For_Grou_1.jpg +0 -0
  308. data/AI_Media_Demonstration/Default_Radical_revolutionary_epistemology_0.jpg +0 -0
  309. data/AI_Media_Demonstration/a.mp4 +0 -0
  310. data/AI_Media_Demonstration/index.html +131 -0
  311. data/AI_Media_Demonstration/worsen1.jpg +0 -0
  312. data/AI_Media_Demonstration/worsen2.jpg +0 -0
  313. data/AI_Media_Demonstration/worsen3.jpg +0 -0
  314. data/Articles/1.html +1 -1
  315. data/Articles/11.html +27 -5
  316. data/Articles/12.html +45 -4
  317. data/Articles/14.html +1 -1
  318. data/Articles/16.html +8 -11
  319. data/Articles/17.html +141 -0
  320. data/Articles/4.html +1 -1
  321. data/Articles/index.html +1 -0
  322. data/Articles_MD/1.html.md +1 -1
  323. data/Articles_MD/11.html.md +25 -12
  324. data/Articles_MD/12.html.md +72 -2
  325. data/Articles_MD/14.html.md +1 -1
  326. data/Articles_MD/16.html.md +14 -12
  327. data/Articles_MD/17.html.md +124 -803
  328. data/Articles_MD/4.html.md +1 -1
  329. data/Articles_MD/index.html.md +1 -0
  330. data/Audio/1.mp3 +0 -0
  331. data/Audio/10.mp3 +0 -0
  332. data/Audio/11.mp3 +0 -0
  333. data/Audio/12.mp3 +0 -0
  334. data/Audio/13.mp3 +0 -0
  335. data/Audio/14.mp3 +0 -0
  336. data/Audio/15_IS_SKIPPED.txt +0 -0
  337. data/Audio/16.mp3 +0 -0
  338. data/Audio/17.mp3 +0 -0
  339. data/Audio/2.mp3 +0 -0
  340. data/Audio/3.mp3 +0 -0
  341. data/Audio/4.mp3 +0 -0
  342. data/Audio/5.mp3 +0 -0
  343. data/Audio/6.mp3 +0 -0
  344. data/Audio/7.mp3 +0 -0
  345. data/Audio/8.mp3 +0 -0
  346. data/Audio/9.mp3 +0 -0
  347. data/Audio/other/BITLY_LINKS +1 -0
  348. data/Audio/other/CYCLE_TRANSCRIPT +38 -0
  349. data/Audio/other/ElevenLabs_2024-02-09T01_44_09_Adam_pre_s50_sb75_se0_b_m2_CYCLE_OF_ETHICAL_BEHAVIOR.mp3 +0 -0
  350. data/Audio/other/ElevenLabs_2024-02-09T01_58_20_Adam_pre_s50_sb75_se0_b_m2.mp3 +0 -0
  351. data/Audio/other/RIGHT_PROBLEM_TRANSCRIPT +41 -0
  352. data/{DOCS.md → DOCS_MOBILE.md} +46 -27
  353. data/NOTE.md +6 -9
  354. data/ONLINE_DOCS +1 -0
  355. data/README.md +23 -3
  356. data/custom_library_example.h +59 -51
  357. data/docs/html/html/foundationallib_8h.html +26 -26
  358. data/docs/html/html/foundationallib_8h.js +2 -2
  359. data/docs/html/html/foundationallib_8h_source.html +8289 -8291
  360. data/docs/html/html/globals_defs.html +2 -2
  361. data/docs/html/html/globals_f.html +3 -3
  362. data/docs/html/html/globals_func_f.html +1 -1
  363. data/docs/html/html/navtreedata.js +1 -1
  364. data/docs/html/html/navtreeindex0.js +3 -3
  365. data/docs/html/html/navtreeindex1.js +2 -2
  366. data/docs/html/html/search/all_5.js +2 -2
  367. data/docs/html/html/search/defines_2.js +1 -1
  368. data/docs/html/html/search/functions_5.js +1 -1
  369. data/docs/src/foundationallib.h +59 -51
  370. data/foundationallib.gemspec +1 -1
  371. data/foundationallib.h +59 -51
  372. data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.c +59 -51
  373. data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.c +59 -51
  374. data/politician_communication/README.md +10 -0
  375. data/politician_communication/international.csv +24106 -0
  376. data/politician_communication/usa.csv +6112 -0
  377. data/tests/decoupled_thorough_tests +0 -0
  378. data/tests/decoupled_thorough_tests32 +0 -0
  379. data/tests/existing_file.txt +24 -0
  380. data/tests/lib_and_tests +0 -0
  381. data/tests/lib_and_tests.c +76 -68
  382. data/tests/lib_and_tests.exe +0 -0
  383. data/tests/lib_and_tests32 +0 -0
  384. data/tests/test_log.txt +35 -35
  385. data/tools/foundationallib.h +59 -51
  386. data/tools/funcs_c +76 -68
  387. data/tools/funcs_c_with_tests.c +76 -68
  388. data/tools/lynx.rb +24 -4
  389. data/tools/make_image_of_docs +1 -1
  390. data/tools/pic.png +0 -0
  391. data/tools/pic2.png +0 -0
  392. data/tools/pic3.png +0 -0
  393. data/tools/with_tests +0 -0
  394. data/tools/with_tests32 +0 -0
  395. metadata +353 -10
  396. data/tools/index.html +0 -147
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2bec8fc664e1e8e7d004c0e72dc74fabe0f5b68c8939f6d518aed5eebc401bd0
4
- data.tar.gz: 8f58449ea2534b4ba66671974728929b45974a9a635f9da46877c43b897886dd
3
+ metadata.gz: 18a57f21d7c2345613885b450f4edd5c58a1ba9f9ee78b27a75418d9a459f7f6
4
+ data.tar.gz: 41a77e550ffbd5a66a81cd29df0d0b19bde6ab627dc5fbb6036237ae5dea9785
5
5
  SHA512:
6
- metadata.gz: a20f1197ff75d3b16aa52e7a21e68a6631b48541cfc1ba8a1c5ead8d99f7e95743ab33da286f4b74bc49d98403edb26dd97f101f3a28714ebe4bf3b6d20eb57f
7
- data.tar.gz: 58d07c8c0e7efcae1c309e86858c6d285bdae92b986d253c0d634f5837ea7ca5ab79855eede6b71b4bbaf45b31f2bf87778ab22604ca046d702e71b932407ba6
6
+ metadata.gz: 9d3373b04e0eaca472904aa5dc233a1bc388ec585d161c82a6d68d740ee84f1602b7605c669a64e82cee4d2de9cfe382233fafabfacd61f72b7b9d4def2164c4
7
+ data.tar.gz: 844a96005bc6112b229d67da30cd8eeafbf24d6a653fc80a4827b97de26f701198f49f61604965abd825d4ecf9ee9d1cbe4a4c3370fb9f5104c3900c737b47d9
@@ -0,0 +1 @@
1
+ Updated
data/.git/FETCH_HEAD ADDED
@@ -0,0 +1 @@
1
+ 8accd0765330817fb04a1b89003f654ee9478a18 branch 'main' of https://www.github.com/gregoryc/foundationallib
data/.git/HEAD ADDED
@@ -0,0 +1 @@
1
+ ref: refs/heads/main
data/.git/ORIG_HEAD ADDED
@@ -0,0 +1 @@
1
+ 8accd0765330817fb04a1b89003f654ee9478a18
data/.git/config ADDED
@@ -0,0 +1,11 @@
1
+ [core]
2
+ repositoryformatversion = 0
3
+ filemode = true
4
+ bare = false
5
+ logallrefupdates = true
6
+ [remote "origin"]
7
+ url = https://www.github.com/gregoryc/foundationallib
8
+ fetch = +refs/heads/*:refs/remotes/origin/*
9
+ [branch "main"]
10
+ remote = origin
11
+ merge = refs/heads/main
data/.git/description ADDED
@@ -0,0 +1 @@
1
+ Unnamed repository; edit this file 'description' to name the repository.
@@ -0,0 +1,15 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to check the commit log message taken by
4
+ # applypatch from an e-mail message.
5
+ #
6
+ # The hook should exit with non-zero status after issuing an
7
+ # appropriate message if it wants to stop the commit. The hook is
8
+ # allowed to edit the commit message file.
9
+ #
10
+ # To enable this hook, rename this file to "applypatch-msg".
11
+
12
+ . git-sh-setup
13
+ commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
14
+ test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
15
+ :
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to check the commit log message.
4
+ # Called by "git commit" with one argument, the name of the file
5
+ # that has the commit message. The hook should exit with non-zero
6
+ # status after issuing an appropriate message if it wants to stop the
7
+ # commit. The hook is allowed to edit the commit message file.
8
+ #
9
+ # To enable this hook, rename this file to "commit-msg".
10
+
11
+ # Uncomment the below to add a Signed-off-by line to the message.
12
+ # Doing this in a hook is a bad idea in general, but the prepare-commit-msg
13
+ # hook is more suited to it.
14
+ #
15
+ # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16
+ # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17
+
18
+ # This example catches duplicate Signed-off-by lines.
19
+
20
+ test "" = "$(grep '^Signed-off-by: ' "$1" |
21
+ sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22
+ echo >&2 Duplicate Signed-off-by lines.
23
+ exit 1
24
+ }
@@ -0,0 +1,173 @@
1
+ #!/usr/bin/perl
2
+
3
+ use strict;
4
+ use warnings;
5
+ use IPC::Open2;
6
+
7
+ # An example hook script to integrate Watchman
8
+ # (https://facebook.github.io/watchman/) with git to speed up detecting
9
+ # new and modified files.
10
+ #
11
+ # The hook is passed a version (currently 2) and last update token
12
+ # formatted as a string and outputs to stdout a new update token and
13
+ # all files that have been modified since the update token. Paths must
14
+ # be relative to the root of the working tree and separated by a single NUL.
15
+ #
16
+ # To enable this hook, rename this file to "query-watchman" and set
17
+ # 'git config core.fsmonitor .git/hooks/query-watchman'
18
+ #
19
+ my ($version, $last_update_token) = @ARGV;
20
+
21
+ # Uncomment for debugging
22
+ # print STDERR "$0 $version $last_update_token\n";
23
+
24
+ # Check the hook interface version
25
+ if ($version ne 2) {
26
+ die "Unsupported query-fsmonitor hook version '$version'.\n" .
27
+ "Falling back to scanning...\n";
28
+ }
29
+
30
+ my $git_work_tree = get_working_dir();
31
+
32
+ my $retry = 1;
33
+
34
+ my $json_pkg;
35
+ eval {
36
+ require JSON::XS;
37
+ $json_pkg = "JSON::XS";
38
+ 1;
39
+ } or do {
40
+ require JSON::PP;
41
+ $json_pkg = "JSON::PP";
42
+ };
43
+
44
+ launch_watchman();
45
+
46
+ sub launch_watchman {
47
+ my $o = watchman_query();
48
+ if (is_work_tree_watched($o)) {
49
+ output_result($o->{clock}, @{$o->{files}});
50
+ }
51
+ }
52
+
53
+ sub output_result {
54
+ my ($clockid, @files) = @_;
55
+
56
+ # Uncomment for debugging watchman output
57
+ # open (my $fh, ">", ".git/watchman-output.out");
58
+ # binmode $fh, ":utf8";
59
+ # print $fh "$clockid\n@files\n";
60
+ # close $fh;
61
+
62
+ binmode STDOUT, ":utf8";
63
+ print $clockid;
64
+ print "\0";
65
+ local $, = "\0";
66
+ print @files;
67
+ }
68
+
69
+ sub watchman_clock {
70
+ my $response = qx/watchman clock "$git_work_tree"/;
71
+ die "Failed to get clock id on '$git_work_tree'.\n" .
72
+ "Falling back to scanning...\n" if $? != 0;
73
+
74
+ return $json_pkg->new->utf8->decode($response);
75
+ }
76
+
77
+ sub watchman_query {
78
+ my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
79
+ or die "open2() failed: $!\n" .
80
+ "Falling back to scanning...\n";
81
+
82
+ # In the query expression below we're asking for names of files that
83
+ # changed since $last_update_token but not from the .git folder.
84
+ #
85
+ # To accomplish this, we're using the "since" generator to use the
86
+ # recency index to select candidate nodes and "fields" to limit the
87
+ # output to file names only. Then we're using the "expression" term to
88
+ # further constrain the results.
89
+ if (substr($last_update_token, 0, 1) eq "c") {
90
+ $last_update_token = "\"$last_update_token\"";
91
+ }
92
+ my $query = <<" END";
93
+ ["query", "$git_work_tree", {
94
+ "since": $last_update_token,
95
+ "fields": ["name"],
96
+ "expression": ["not", ["dirname", ".git"]]
97
+ }]
98
+ END
99
+
100
+ # Uncomment for debugging the watchman query
101
+ # open (my $fh, ">", ".git/watchman-query.json");
102
+ # print $fh $query;
103
+ # close $fh;
104
+
105
+ print CHLD_IN $query;
106
+ close CHLD_IN;
107
+ my $response = do {local $/; <CHLD_OUT>};
108
+
109
+ # Uncomment for debugging the watch response
110
+ # open ($fh, ">", ".git/watchman-response.json");
111
+ # print $fh $response;
112
+ # close $fh;
113
+
114
+ die "Watchman: command returned no output.\n" .
115
+ "Falling back to scanning...\n" if $response eq "";
116
+ die "Watchman: command returned invalid output: $response\n" .
117
+ "Falling back to scanning...\n" unless $response =~ /^\{/;
118
+
119
+ return $json_pkg->new->utf8->decode($response);
120
+ }
121
+
122
+ sub is_work_tree_watched {
123
+ my ($output) = @_;
124
+ my $error = $output->{error};
125
+ if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
126
+ $retry--;
127
+ my $response = qx/watchman watch "$git_work_tree"/;
128
+ die "Failed to make watchman watch '$git_work_tree'.\n" .
129
+ "Falling back to scanning...\n" if $? != 0;
130
+ $output = $json_pkg->new->utf8->decode($response);
131
+ $error = $output->{error};
132
+ die "Watchman: $error.\n" .
133
+ "Falling back to scanning...\n" if $error;
134
+
135
+ # Uncomment for debugging watchman output
136
+ # open (my $fh, ">", ".git/watchman-output.out");
137
+ # close $fh;
138
+
139
+ # Watchman will always return all files on the first query so
140
+ # return the fast "everything is dirty" flag to git and do the
141
+ # Watchman query just to get it over with now so we won't pay
142
+ # the cost in git to look up each individual file.
143
+ my $o = watchman_clock();
144
+ $error = $output->{error};
145
+
146
+ die "Watchman: $error.\n" .
147
+ "Falling back to scanning...\n" if $error;
148
+
149
+ output_result($o->{clock}, ("/"));
150
+ $last_update_token = $o->{clock};
151
+
152
+ eval { launch_watchman() };
153
+ return 0;
154
+ }
155
+
156
+ die "Watchman: $error.\n" .
157
+ "Falling back to scanning...\n" if $error;
158
+
159
+ return 1;
160
+ }
161
+
162
+ sub get_working_dir {
163
+ my $working_dir;
164
+ if ($^O =~ 'msys' || $^O =~ 'cygwin') {
165
+ $working_dir = Win32::GetCwd();
166
+ $working_dir =~ tr/\\/\//;
167
+ } else {
168
+ require Cwd;
169
+ $working_dir = Cwd::cwd();
170
+ }
171
+
172
+ return $working_dir;
173
+ }
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to prepare a packed repository for use over
4
+ # dumb transports.
5
+ #
6
+ # To enable this hook, rename this file to "post-update".
7
+
8
+ exec git update-server-info
@@ -0,0 +1,14 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to verify what is about to be committed
4
+ # by applypatch from an e-mail message.
5
+ #
6
+ # The hook should exit with non-zero status after issuing an
7
+ # appropriate message if it wants to stop the commit.
8
+ #
9
+ # To enable this hook, rename this file to "pre-applypatch".
10
+
11
+ . git-sh-setup
12
+ precommit="$(git rev-parse --git-path hooks/pre-commit)"
13
+ test -x "$precommit" && exec "$precommit" ${1+"$@"}
14
+ :
@@ -0,0 +1,49 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to verify what is about to be committed.
4
+ # Called by "git commit" with no arguments. The hook should
5
+ # exit with non-zero status after issuing an appropriate message if
6
+ # it wants to stop the commit.
7
+ #
8
+ # To enable this hook, rename this file to "pre-commit".
9
+
10
+ if git rev-parse --verify HEAD >/dev/null 2>&1
11
+ then
12
+ against=HEAD
13
+ else
14
+ # Initial commit: diff against an empty tree object
15
+ against=$(git hash-object -t tree /dev/null)
16
+ fi
17
+
18
+ # If you want to allow non-ASCII filenames set this variable to true.
19
+ allownonascii=$(git config --type=bool hooks.allownonascii)
20
+
21
+ # Redirect output to stderr.
22
+ exec 1>&2
23
+
24
+ # Cross platform projects tend to avoid non-ASCII filenames; prevent
25
+ # them from being added to the repository. We exploit the fact that the
26
+ # printable range starts at the space character and ends with tilde.
27
+ if [ "$allownonascii" != "true" ] &&
28
+ # Note that the use of brackets around a tr range is ok here, (it's
29
+ # even required, for portability to Solaris 10's /usr/bin/tr), since
30
+ # the square bracket bytes happen to fall in the designated range.
31
+ test $(git diff --cached --name-only --diff-filter=A -z $against |
32
+ LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
33
+ then
34
+ cat <<\EOF
35
+ Error: Attempt to add a non-ASCII file name.
36
+
37
+ This can cause problems if you want to work with people on other platforms.
38
+
39
+ To be portable it is advisable to rename the file.
40
+
41
+ If you know what you are doing you can disable this check using:
42
+
43
+ git config hooks.allownonascii true
44
+ EOF
45
+ exit 1
46
+ fi
47
+
48
+ # If there are whitespace errors, print the offending file names and fail.
49
+ exec git diff-index --check --cached $against --
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to verify what is about to be committed.
4
+ # Called by "git merge" with no arguments. The hook should
5
+ # exit with non-zero status after issuing an appropriate message to
6
+ # stderr if it wants to stop the merge commit.
7
+ #
8
+ # To enable this hook, rename this file to "pre-merge-commit".
9
+
10
+ . git-sh-setup
11
+ test -x "$GIT_DIR/hooks/pre-commit" &&
12
+ exec "$GIT_DIR/hooks/pre-commit"
13
+ :
@@ -0,0 +1,53 @@
1
+ #!/bin/sh
2
+
3
+ # An example hook script to verify what is about to be pushed. Called by "git
4
+ # push" after it has checked the remote status, but before anything has been
5
+ # pushed. If this script exits with a non-zero status nothing will be pushed.
6
+ #
7
+ # This hook is called with the following parameters:
8
+ #
9
+ # $1 -- Name of the remote to which the push is being done
10
+ # $2 -- URL to which the push is being done
11
+ #
12
+ # If pushing without using a named remote those arguments will be equal.
13
+ #
14
+ # Information about the commits which are being pushed is supplied as lines to
15
+ # the standard input in the form:
16
+ #
17
+ # <local ref> <local oid> <remote ref> <remote oid>
18
+ #
19
+ # This sample shows how to prevent push of commits where the log message starts
20
+ # with "WIP" (work in progress).
21
+
22
+ remote="$1"
23
+ url="$2"
24
+
25
+ zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
26
+
27
+ while read local_ref local_oid remote_ref remote_oid
28
+ do
29
+ if test "$local_oid" = "$zero"
30
+ then
31
+ # Handle delete
32
+ :
33
+ else
34
+ if test "$remote_oid" = "$zero"
35
+ then
36
+ # New branch, examine all commits
37
+ range="$local_oid"
38
+ else
39
+ # Update to existing branch, examine new commits
40
+ range="$remote_oid..$local_oid"
41
+ fi
42
+
43
+ # Check for WIP commit
44
+ commit=$(git rev-list -n 1 --grep '^WIP' "$range")
45
+ if test -n "$commit"
46
+ then
47
+ echo >&2 "Found WIP commit in $local_ref, not pushing"
48
+ exit 1
49
+ fi
50
+ fi
51
+ done
52
+
53
+ exit 0
@@ -0,0 +1,169 @@
1
+ #!/bin/sh
2
+ #
3
+ # Copyright (c) 2006, 2008 Junio C Hamano
4
+ #
5
+ # The "pre-rebase" hook is run just before "git rebase" starts doing
6
+ # its job, and can prevent the command from running by exiting with
7
+ # non-zero status.
8
+ #
9
+ # The hook is called with the following parameters:
10
+ #
11
+ # $1 -- the upstream the series was forked from.
12
+ # $2 -- the branch being rebased (or empty when rebasing the current branch).
13
+ #
14
+ # This sample shows how to prevent topic branches that are already
15
+ # merged to 'next' branch from getting rebased, because allowing it
16
+ # would result in rebasing already published history.
17
+
18
+ publish=next
19
+ basebranch="$1"
20
+ if test "$#" = 2
21
+ then
22
+ topic="refs/heads/$2"
23
+ else
24
+ topic=`git symbolic-ref HEAD` ||
25
+ exit 0 ;# we do not interrupt rebasing detached HEAD
26
+ fi
27
+
28
+ case "$topic" in
29
+ refs/heads/??/*)
30
+ ;;
31
+ *)
32
+ exit 0 ;# we do not interrupt others.
33
+ ;;
34
+ esac
35
+
36
+ # Now we are dealing with a topic branch being rebased
37
+ # on top of master. Is it OK to rebase it?
38
+
39
+ # Does the topic really exist?
40
+ git show-ref -q "$topic" || {
41
+ echo >&2 "No such branch $topic"
42
+ exit 1
43
+ }
44
+
45
+ # Is topic fully merged to master?
46
+ not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
47
+ if test -z "$not_in_master"
48
+ then
49
+ echo >&2 "$topic is fully merged to master; better remove it."
50
+ exit 1 ;# we could allow it, but there is no point.
51
+ fi
52
+
53
+ # Is topic ever merged to next? If so you should not be rebasing it.
54
+ only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
55
+ only_next_2=`git rev-list ^master ${publish} | sort`
56
+ if test "$only_next_1" = "$only_next_2"
57
+ then
58
+ not_in_topic=`git rev-list "^$topic" master`
59
+ if test -z "$not_in_topic"
60
+ then
61
+ echo >&2 "$topic is already up to date with master"
62
+ exit 1 ;# we could allow it, but there is no point.
63
+ else
64
+ exit 0
65
+ fi
66
+ else
67
+ not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
68
+ /usr/bin/perl -e '
69
+ my $topic = $ARGV[0];
70
+ my $msg = "* $topic has commits already merged to public branch:\n";
71
+ my (%not_in_next) = map {
72
+ /^([0-9a-f]+) /;
73
+ ($1 => 1);
74
+ } split(/\n/, $ARGV[1]);
75
+ for my $elem (map {
76
+ /^([0-9a-f]+) (.*)$/;
77
+ [$1 => $2];
78
+ } split(/\n/, $ARGV[2])) {
79
+ if (!exists $not_in_next{$elem->[0]}) {
80
+ if ($msg) {
81
+ print STDERR $msg;
82
+ undef $msg;
83
+ }
84
+ print STDERR " $elem->[1]\n";
85
+ }
86
+ }
87
+ ' "$topic" "$not_in_next" "$not_in_master"
88
+ exit 1
89
+ fi
90
+
91
+ <<\DOC_END
92
+
93
+ This sample hook safeguards topic branches that have been
94
+ published from being rewound.
95
+
96
+ The workflow assumed here is:
97
+
98
+ * Once a topic branch forks from "master", "master" is never
99
+ merged into it again (either directly or indirectly).
100
+
101
+ * Once a topic branch is fully cooked and merged into "master",
102
+ it is deleted. If you need to build on top of it to correct
103
+ earlier mistakes, a new topic branch is created by forking at
104
+ the tip of the "master". This is not strictly necessary, but
105
+ it makes it easier to keep your history simple.
106
+
107
+ * Whenever you need to test or publish your changes to topic
108
+ branches, merge them into "next" branch.
109
+
110
+ The script, being an example, hardcodes the publish branch name
111
+ to be "next", but it is trivial to make it configurable via
112
+ $GIT_DIR/config mechanism.
113
+
114
+ With this workflow, you would want to know:
115
+
116
+ (1) ... if a topic branch has ever been merged to "next". Young
117
+ topic branches can have stupid mistakes you would rather
118
+ clean up before publishing, and things that have not been
119
+ merged into other branches can be easily rebased without
120
+ affecting other people. But once it is published, you would
121
+ not want to rewind it.
122
+
123
+ (2) ... if a topic branch has been fully merged to "master".
124
+ Then you can delete it. More importantly, you should not
125
+ build on top of it -- other people may already want to
126
+ change things related to the topic as patches against your
127
+ "master", so if you need further changes, it is better to
128
+ fork the topic (perhaps with the same name) afresh from the
129
+ tip of "master".
130
+
131
+ Let's look at this example:
132
+
133
+ o---o---o---o---o---o---o---o---o---o "next"
134
+ / / / /
135
+ / a---a---b A / /
136
+ / / / /
137
+ / / c---c---c---c B /
138
+ / / / \ /
139
+ / / / b---b C \ /
140
+ / / / / \ /
141
+ ---o---o---o---o---o---o---o---o---o---o---o "master"
142
+
143
+
144
+ A, B and C are topic branches.
145
+
146
+ * A has one fix since it was merged up to "next".
147
+
148
+ * B has finished. It has been fully merged up to "master" and "next",
149
+ and is ready to be deleted.
150
+
151
+ * C has not merged to "next" at all.
152
+
153
+ We would want to allow C to be rebased, refuse A, and encourage
154
+ B to be deleted.
155
+
156
+ To compute (1):
157
+
158
+ git rev-list ^master ^topic next
159
+ git rev-list ^master next
160
+
161
+ if these match, topic has not merged in next at all.
162
+
163
+ To compute (2):
164
+
165
+ git rev-list master..topic
166
+
167
+ if this is empty, it is fully merged to "master".
168
+
169
+ DOC_END
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to make use of push options.
4
+ # The example simply echoes all push options that start with 'echoback='
5
+ # and rejects all pushes when the "reject" push option is used.
6
+ #
7
+ # To enable this hook, rename this file to "pre-receive".
8
+
9
+ if test -n "$GIT_PUSH_OPTION_COUNT"
10
+ then
11
+ i=0
12
+ while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
13
+ do
14
+ eval "value=\$GIT_PUSH_OPTION_$i"
15
+ case "$value" in
16
+ echoback=*)
17
+ echo "echo from the pre-receive-hook: ${value#*=}" >&2
18
+ ;;
19
+ reject)
20
+ exit 1
21
+ esac
22
+ i=$((i + 1))
23
+ done
24
+ fi
@@ -0,0 +1,42 @@
1
+ #!/bin/sh
2
+ #
3
+ # An example hook script to prepare the commit log message.
4
+ # Called by "git commit" with the name of the file that has the
5
+ # commit message, followed by the description of the commit
6
+ # message's source. The hook's purpose is to edit the commit
7
+ # message file. If the hook fails with a non-zero status,
8
+ # the commit is aborted.
9
+ #
10
+ # To enable this hook, rename this file to "prepare-commit-msg".
11
+
12
+ # This hook includes three examples. The first one removes the
13
+ # "# Please enter the commit message..." help message.
14
+ #
15
+ # The second includes the output of "git diff --name-status -r"
16
+ # into the message, just before the "git status" output. It is
17
+ # commented because it doesn't cope with --amend or with squashed
18
+ # commits.
19
+ #
20
+ # The third example adds a Signed-off-by line to the message, that can
21
+ # still be edited. This is rarely a good idea.
22
+
23
+ COMMIT_MSG_FILE=$1
24
+ COMMIT_SOURCE=$2
25
+ SHA1=$3
26
+
27
+ /usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
28
+
29
+ # case "$COMMIT_SOURCE,$SHA1" in
30
+ # ,|template,)
31
+ # /usr/bin/perl -i.bak -pe '
32
+ # print "\n" . `git diff --cached --name-status -r`
33
+ # if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
34
+ # *) ;;
35
+ # esac
36
+
37
+ # SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
38
+ # git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
39
+ # if test -z "$COMMIT_SOURCE"
40
+ # then
41
+ # /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
42
+ # fi