eac_git 0.1.0 → 0.3.3

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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/lib/eac_git/executables.rb +24 -4
  3. data/lib/eac_git/local.rb +5 -1
  4. data/lib/eac_git/local/dirty_files.rb +37 -0
  5. data/lib/eac_git/rspec.rb +17 -0
  6. data/lib/eac_git/version.rb +1 -1
  7. data/vendor/git-subrepo/Changes +110 -0
  8. data/vendor/git-subrepo/Intro.pod +509 -0
  9. data/vendor/git-subrepo/License +21 -0
  10. data/vendor/git-subrepo/Makefile +82 -0
  11. data/vendor/git-subrepo/Meta +28 -0
  12. data/vendor/git-subrepo/ReadMe.pod +698 -0
  13. data/vendor/git-subrepo/doc/comparison.swim +35 -0
  14. data/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
  15. data/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
  16. data/vendor/git-subrepo/ext/bashplus/Changes +15 -0
  17. data/vendor/git-subrepo/ext/bashplus/License +21 -0
  18. data/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
  19. data/vendor/git-subrepo/ext/bashplus/Meta +28 -0
  20. data/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
  21. data/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
  22. data/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
  23. data/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
  24. data/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
  25. data/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
  26. data/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
  27. data/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
  28. data/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
  29. data/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
  30. data/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
  31. data/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
  32. data/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
  33. data/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
  34. data/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
  35. data/vendor/git-subrepo/ext/test-more-bash/License +21 -0
  36. data/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
  37. data/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
  38. data/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
  39. data/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
  40. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
  41. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
  42. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
  43. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
  44. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
  45. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
  46. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
  47. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
  48. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
  49. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
  50. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
  51. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
  52. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
  53. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
  54. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
  55. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
  56. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
  57. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
  58. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
  59. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
  60. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
  61. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
  62. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
  63. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
  64. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
  65. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
  66. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
  67. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
  68. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
  69. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
  70. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
  71. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
  72. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
  73. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
  74. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
  75. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
  76. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
  77. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
  78. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
  79. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
  80. data/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
  81. data/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
  82. data/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
  83. data/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
  84. data/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
  85. data/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
  86. data/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
  87. data/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
  88. data/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
  89. data/vendor/git-subrepo/lib/git-subrepo +1903 -0
  90. data/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
  91. data/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
  92. data/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
  93. data/vendor/git-subrepo/note/0.4.0 +12 -0
  94. data/vendor/git-subrepo/note/AllGitCmds +148 -0
  95. data/vendor/git-subrepo/note/Cases +32 -0
  96. data/vendor/git-subrepo/note/Commands +33 -0
  97. data/vendor/git-subrepo/note/Dags +199 -0
  98. data/vendor/git-subrepo/note/Gists +7 -0
  99. data/vendor/git-subrepo/note/Links +25 -0
  100. data/vendor/git-subrepo/note/Plugins +10 -0
  101. data/vendor/git-subrepo/note/Spec +39 -0
  102. data/vendor/git-subrepo/note/Story1 +57 -0
  103. data/vendor/git-subrepo/note/ToDo +55 -0
  104. data/vendor/git-subrepo/note/design.swim +137 -0
  105. data/vendor/git-subrepo/note/design2.swim +85 -0
  106. data/vendor/git-subrepo/note/init-test +38 -0
  107. data/vendor/git-subrepo/note/pull-dance.txt +18 -0
  108. data/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
  109. data/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
  110. data/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
  111. data/vendor/git-subrepo/note/test.sh +58 -0
  112. data/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
  113. data/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
  114. data/vendor/git-subrepo/share/completion.bash +42 -0
  115. data/vendor/git-subrepo/share/enable-completion.sh +50 -0
  116. data/vendor/git-subrepo/share/git-completion.bash +2738 -0
  117. data/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
  118. data/vendor/git-subrepo/test/branch-all.t +41 -0
  119. data/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
  120. data/vendor/git-subrepo/test/branch-rev-list.t +47 -0
  121. data/vendor/git-subrepo/test/branch.t +52 -0
  122. data/vendor/git-subrepo/test/clean.t +43 -0
  123. data/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
  124. data/vendor/git-subrepo/test/clone.t +107 -0
  125. data/vendor/git-subrepo/test/compile.t +19 -0
  126. data/vendor/git-subrepo/test/config.t +58 -0
  127. data/vendor/git-subrepo/test/encode.t +91 -0
  128. data/vendor/git-subrepo/test/error.t +171 -0
  129. data/vendor/git-subrepo/test/fetch.t +43 -0
  130. data/vendor/git-subrepo/test/gitignore.t +61 -0
  131. data/vendor/git-subrepo/test/init.t +64 -0
  132. data/vendor/git-subrepo/test/issue29.t +98 -0
  133. data/vendor/git-subrepo/test/issue95.t +98 -0
  134. data/vendor/git-subrepo/test/issue96.t +96 -0
  135. data/vendor/git-subrepo/test/pull-all.t +38 -0
  136. data/vendor/git-subrepo/test/pull-merge.t +113 -0
  137. data/vendor/git-subrepo/test/pull-message.t +88 -0
  138. data/vendor/git-subrepo/test/pull-new-branch.t +58 -0
  139. data/vendor/git-subrepo/test/pull-ours.t +90 -0
  140. data/vendor/git-subrepo/test/pull-theirs.t +82 -0
  141. data/vendor/git-subrepo/test/pull-twice.t +44 -0
  142. data/vendor/git-subrepo/test/pull-worktree.t +40 -0
  143. data/vendor/git-subrepo/test/pull.t +99 -0
  144. data/vendor/git-subrepo/test/push-after-init.t +51 -0
  145. data/vendor/git-subrepo/test/push-force.t +56 -0
  146. data/vendor/git-subrepo/test/push-new-branch.t +61 -0
  147. data/vendor/git-subrepo/test/push-no-changes.t +29 -0
  148. data/vendor/git-subrepo/test/push-squash.t +56 -0
  149. data/vendor/git-subrepo/test/push.t +176 -0
  150. data/vendor/git-subrepo/test/reclone.t +45 -0
  151. data/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
  152. data/vendor/git-subrepo/test/repo/bar/config +4 -0
  153. data/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  154. data/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  155. data/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  156. data/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  157. data/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  158. data/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  159. data/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
  160. data/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
  161. data/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
  162. data/vendor/git-subrepo/test/repo/foo/config +4 -0
  163. data/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  164. data/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  165. data/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  166. data/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
  167. data/vendor/git-subrepo/test/repo/init/HEAD +1 -0
  168. data/vendor/git-subrepo/test/repo/init/config +5 -0
  169. data/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  170. data/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  171. data/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
  172. data/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  173. data/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  174. data/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  175. data/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  176. data/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  177. data/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
  178. data/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  179. data/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  180. data/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
  181. data/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  182. data/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  183. data/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
  184. data/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
  185. data/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
  186. data/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
  187. data/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  188. data/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
  189. data/vendor/git-subrepo/test/setup +205 -0
  190. data/vendor/git-subrepo/test/status.t +68 -0
  191. data/vendor/git-subrepo/test/submodule.t +45 -0
  192. metadata +190 -4
@@ -0,0 +1,15 @@
1
+ ---
2
+ version: 0.0.7
3
+ date: Sat Jan 23 16:28:59 PST 2016
4
+ changes:
5
+ - Update tooling, and copyright
6
+ ---
7
+ version: 0.0.6
8
+ date: Fri Jan 23 21:05:15 PST 2015
9
+ changes:
10
+ - Update tooling, and copyright
11
+ ---
12
+ version: 0.0.1
13
+ date: Sun Oct 27 19:07:51 PDT 2013
14
+ changes:
15
+ - First release.
@@ -0,0 +1,21 @@
1
+ (The MIT License)
2
+
3
+ Copyright © 2013-2016 Ingy döt Net
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the ‘Software’), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do
10
+ so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,45 @@
1
+ ifeq ($(MAKECMDGOALS),install)
2
+ ifeq "$(shell bpan version 2>/dev/null)" ""
3
+ $(error 'BPAN not installed. See http://bpan.org')
4
+ endif
5
+ endif
6
+
7
+ NAME := bash+
8
+ LIB := lib/$(NAME).bash
9
+ DOC := doc/$(NAME).swim
10
+ MAN1 := man/man1
11
+ MAN3 := man/man3
12
+
13
+ INSTALL_LIB ?= $(shell bpan env BPAN_LIB)
14
+ INSTALL_DIR ?= test
15
+ INSTALL_MAN1 ?= $(shell bpan env BPAN_MAN1)
16
+ INSTALL_MAN3 ?= $(shell bpan env BPAN_MAN3)
17
+
18
+ default: help
19
+
20
+ help:
21
+ @echo 'Rules: test, install, doc'
22
+
23
+ .PHONY: test
24
+ test:
25
+ prove $(PROVEOPT:%=% )test/
26
+
27
+ install:
28
+ install -C -d -m 0755 $(INSTALL_LIB)/$(INSTALL_DIR)/
29
+ install -C -m 0755 $(LIB) $(INSTALL_LIB)/$(INSTALL_DIR)/
30
+ install -C -d -m 0755 $(INSTALL_MAN1)/
31
+ install -C -d -m 0755 $(INSTALL_MAN3)/
32
+ install -C -m 0644 $(MAN1)/$(NAME).1 $(INSTALL_MAN1)/
33
+ install -C -m 0644 $(MAN3)/$(NAME).3 $(INSTALL_MAN3)/
34
+
35
+ .PHONY: doc
36
+ doc: ReadMe.pod $(MAN1)/$(NAME).1 $(MAN3)/$(NAME).3
37
+
38
+ ReadMe.pod: $(DOC)
39
+ swim --to=pod --complete --wrap $< > $@
40
+
41
+ $(MAN1)/%.1: doc/%.swim
42
+ swim --to=man $< > $@
43
+
44
+ $(MAN3)/%.3: doc/%.swim
45
+ swim --to=man $< > $@
@@ -0,0 +1,28 @@
1
+ =meta: 0.0.2
2
+
3
+ name: bashplus
4
+ version: 0.0.7
5
+ abstract: Modern Bash Programming
6
+ homepage: http://bpan.org/package/bashplus/
7
+
8
+ license: MIT
9
+ copyright: 2013-2016
10
+ author:
11
+ name: Ingy döt Net
12
+ email: ingy@ingy.net
13
+ github: ingydotnet
14
+ twitter: ingydotnet
15
+ freenode: ingy
16
+ homepage: http://ingy.net
17
+
18
+ requires:
19
+ bash: 3.2.0
20
+ test:
21
+ cmd: make test
22
+ install:
23
+ cmd: make install
24
+
25
+ devel:
26
+ git: git@github.org/ingydotnet/bashplus
27
+ irc: irc.freenode.net/bpan
28
+ bug: https://github.com/ingydotnet/bashplus/issues/
@@ -0,0 +1,77 @@
1
+ =pod
2
+
3
+ =for comment
4
+ DO NOT EDIT. This Pod was generated by Swim v0.1.41.
5
+ See http://github.com/ingydotnet/swim-pm#readme
6
+
7
+ =encoding utf8
8
+
9
+ =head1 Name
10
+
11
+ Bash+(1) - Modern Bash Programming
12
+
13
+ =for html
14
+ <a href="https://travis-ci.org/ingydotnet/bashplus"><img src="https://travis-ci.org/ingydotnet/bashplus.png" alt="bashplus"></a>
15
+
16
+ =head1 Synopsis
17
+
18
+ source bash+ :std :array
19
+
20
+ use Foo::Bar this that
21
+
22
+ Array.new args "$@"
23
+
24
+ if args.empty?; then
25
+ die "I need args!"
26
+ fi
27
+
28
+ Foo::Bar.new foo args
29
+
30
+ this is awesome # <= this is a real command! (You just imported it)
31
+
32
+ =head1 Description
33
+
34
+ Bash+ is just Bash... B<plus> some libraries that can make Bash programming a
35
+ lot nicer.
36
+
37
+ =for comment # Installation
38
+
39
+ Get the source code from GitHub:
40
+
41
+ git clone git@github.com:ingydotnet/bashplus
42
+
43
+ Then run:
44
+
45
+ make test
46
+ make install # Possibly with 'sudo'
47
+
48
+ =head1 Usage
49
+
50
+ For now look at some libraries the use Bash+:
51
+
52
+ =over
53
+
54
+ =item * L<https://github.com/ingydotnet/git-hub>
55
+
56
+ =item * L<https://github.com/ingydotnet/json-bash>
57
+
58
+ =item * L<https://github.com/ingydotnet/test-more-bash>
59
+
60
+ =back
61
+
62
+ =head1 Status
63
+
64
+ If you are interested in chatting about this, C</join #bpan> on
65
+ irc.freenode.net.
66
+
67
+ =head1 Author
68
+
69
+ Written by Ingy döt Net <ingy@ingy.net>
70
+
71
+ =head1 Copyright & License
72
+
73
+ Copyright 2013-2016. Ingy döt Net.
74
+
75
+ The MIT License (MIT).
76
+
77
+ =cut
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+ #------------------------------------------------------------------------------
3
+ # Bash+ - Modern Bash Programming
4
+ #
5
+ # Copyright (c) 2013-2016 Ingy döt Net
6
+ #------------------------------------------------------------------------------
7
+
8
+ set -e
9
+ shopt -s compat31&>/dev/null||:
10
+
11
+ #------------------------------------------------------------------------------
12
+ # Determine how `bash+` was called, and do the right thing:
13
+ #------------------------------------------------------------------------------
14
+ if [ "${BASH_SOURCE[0]}" != "$0" ]; then
15
+ # 'bash+' is being sourced:
16
+ [[ "${BASH_SOURCE[0]}" =~ /bin/bash\\+$ ]] || {
17
+ echo "Invalid Bash+ path '${BASH_SOURCE[0]}'" 2> /dev/null
18
+ exit 1
19
+ }
20
+ source "${BASH_SOURCE[0]%/bin/*}"/lib/bash+.bash || return $?
21
+ bash+:import "$@"
22
+ return $?
23
+ else
24
+ if [ $# -eq 1 -a "$1" == --version ]; then
25
+ echo 'bash+ version 0.0.7'
26
+ else
27
+ cat <<...
28
+
29
+ Greetings modern Bash programmer. Welcome to Bash+!
30
+
31
+ Bash+ is framework that makes Bash programming more like Ruby and Perl.
32
+
33
+ See: https://github.com/bpan-org/bashplus
34
+
35
+ If you got here trying to use bash+ in a program, you need to source it:
36
+
37
+ source bash+
38
+
39
+ Happy Bash Hacking!
40
+
41
+ ...
42
+ fi
43
+ fi
@@ -0,0 +1,61 @@
1
+ Bash+(1)
2
+ ========
3
+
4
+ Modern Bash Programming
5
+
6
+ <badge travis ingydotnet/bashplus>
7
+
8
+ = Synopsis
9
+
10
+ source bash+ :std :array
11
+
12
+ use Foo::Bar this that
13
+
14
+ Array.new args "$@"
15
+
16
+ if args.empty?; then
17
+ die "I need args!"
18
+ fi
19
+
20
+ Foo::Bar.new foo args
21
+
22
+ this is awesome # <= this is a real command! (You just imported it)
23
+
24
+ = Description
25
+
26
+ Bash+ is just Bash... *plus* some libraries that can make Bash programming a
27
+ lot nicer.
28
+
29
+ ## Installation
30
+
31
+ Get the source code from GitHub:
32
+
33
+ git clone git@github.com:ingydotnet/bashplus
34
+
35
+ Then run:
36
+
37
+ make test
38
+ make install # Possibly with 'sudo'
39
+
40
+ = Usage
41
+
42
+ For now look at some libraries the use Bash+:
43
+
44
+ * https://github.com/ingydotnet/git-hub
45
+ * https://github.com/ingydotnet/json-bash
46
+ * https://github.com/ingydotnet/test-more-bash
47
+
48
+ = Status
49
+
50
+ If you are interested in chatting about this, `/join #bpan` on
51
+ irc.freenode.net.
52
+
53
+ = Author
54
+
55
+ Written by Ingy döt Net <ingy@ingy.net>
56
+
57
+ = Copyright & License
58
+
59
+ Copyright 2013-2016. Ingy döt Net.
60
+
61
+ The MIT License (MIT).
@@ -0,0 +1,92 @@
1
+ # bash+ - Modern Bash Programming
2
+ #
3
+ # Copyright (c) 2013-2016 Ingy döt Net
4
+
5
+ {
6
+ bash+:version-check() {
7
+ test $1 -ge 4 && return
8
+ test $1 -eq 3 -a $2 -ge 2 && return
9
+ echo "Bash version 3.2 or higher required for 'git hub'" >&2
10
+ exit 1
11
+ }
12
+ bash+:version-check "${BASH_VERSINFO[@]}"
13
+ unset -f Bash:version-check
14
+ }
15
+
16
+ set -e
17
+
18
+ [ -z "$BASHPLUS_VERSION" ] || return 0
19
+
20
+ BASHPLUS_VERSION='0.0.7'
21
+
22
+ @() { echo "$@"; }
23
+ bash+:export:std() { @ use die warn; }
24
+
25
+ # Source a bash library call import on it:
26
+ bash+:use() {
27
+ local library_name="${1:?bash+:use requires library name}"; shift
28
+ local library_path=; library_path="$(bash+:findlib $library_name)"
29
+ [[ -n $library_path ]] || {
30
+ bash+:die "Can't find library '$library_name'." 1
31
+ }
32
+ source "$library_path"
33
+ if bash+:can "$library_name:import"; then
34
+ "$library_name:import" "$@"
35
+ else
36
+ bash+:import "$@"
37
+ fi
38
+ }
39
+
40
+ # Copy bash+: functions to unprefixed functions
41
+ bash+:import() {
42
+ local arg=
43
+ for arg; do
44
+ if [[ $arg =~ ^: ]]; then
45
+ bash+:import `bash+:export$arg`
46
+ else
47
+ bash+:fcopy bash+:$arg $arg
48
+ fi
49
+ done
50
+ }
51
+
52
+ # Function copy
53
+ bash+:fcopy() {
54
+ bash+:can "${1:?bash+:fcopy requires an input function name}" ||
55
+ bash+:die "'$1' is not a function" 2
56
+ local func=; func=$(type "$1" 3>/dev/null | tail -n+3)
57
+ [[ -n $3 ]] && "$3"
58
+ eval "${2:?bash+:fcopy requires an output function name}() $func"
59
+ }
60
+
61
+ # Find the path of a library
62
+ bash+:findlib() {
63
+ local library_name=; library_name="$(tr 'A-Z' 'a-z' <<< "${1//:://}").bash"
64
+ local lib="${BASHPLUSLIB:-${BASHLIB:-$PATH}}"
65
+ library_name="${library_name//+/\\+}"
66
+ find ${lib//:/ } -name ${library_name##*/} 2>/dev/null |
67
+ grep -E "$library_name\$" |
68
+ head -n1
69
+ }
70
+
71
+ bash+:die() {
72
+ local msg="${1:-Died}"
73
+ printf "${msg//\\n/$'\n'}" >&2
74
+ local trailing_newline_re=$'\n''$'
75
+ [[ $msg =~ $trailing_newline_re ]] && exit 1
76
+
77
+ local c=($(caller ${DIE_STACK_LEVEL:-${2:-0}}))
78
+ (( ${#c[@]} == 2 )) &&
79
+ msg=" at line %d of %s" ||
80
+ msg=" at line %d in %s of %s"
81
+ printf "$msg\n" ${c[@]} >&2
82
+ exit 1
83
+ }
84
+
85
+ bash+:warn() {
86
+ local msg="${1:-Warning}"
87
+ printf "${msg//\\n/$'\n'}\n" >&2
88
+ }
89
+
90
+ bash+:can() {
91
+ [[ $(type -t "${1:?bash+:can requires a function name}") == function ]]
92
+ }
@@ -0,0 +1,134 @@
1
+ .\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
2
+ .\"
3
+ .\" Standard preamble:
4
+ .\" ========================================================================
5
+ .de Sp \" Vertical space (when we can't use .PP)
6
+ .if t .sp .5v
7
+ .if n .sp
8
+ ..
9
+ .de Vb \" Begin verbatim text
10
+ .ft CW
11
+ .nf
12
+ .ne \\$1
13
+ ..
14
+ .de Ve \" End verbatim text
15
+ .ft R
16
+ .fi
17
+ ..
18
+ .\" Set up some character translations and predefined strings. \*(-- will
19
+ .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20
+ .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21
+ .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22
+ .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23
+ .\" nothing in troff, for use with C<>.
24
+ .tr \(*W-
25
+ .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26
+ .ie n \{\
27
+ . ds -- \(*W-
28
+ . ds PI pi
29
+ . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30
+ . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31
+ . ds L" ""
32
+ . ds R" ""
33
+ . ds C` ""
34
+ . ds C' ""
35
+ 'br\}
36
+ .el\{\
37
+ . ds -- \|\(em\|
38
+ . ds PI \(*p
39
+ . ds L" ``
40
+ . ds R" ''
41
+ . ds C`
42
+ . ds C'
43
+ 'br\}
44
+ .\"
45
+ .\" Escape single quotes in literal strings from groff's Unicode transform.
46
+ .ie \n(.g .ds Aq \(aq
47
+ .el .ds Aq '
48
+ .\"
49
+ .\" If the F register is turned on, we'll generate index entries on stderr for
50
+ .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51
+ .\" entries marked with X<> in POD. Of course, you'll have to process the
52
+ .\" output yourself in some meaningful fashion.
53
+ .\"
54
+ .\" Avoid warning from groff about undefined register 'F'.
55
+ .de IX
56
+ ..
57
+ .nr rF 0
58
+ .if \n(.g .if rF .nr rF 1
59
+ .if (\n(rF:(\n(.g==0)) \{
60
+ . if \nF \{
61
+ . de IX
62
+ . tm Index:\\$1\t\\n%\t"\\$2"
63
+ ..
64
+ . if !\nF==2 \{
65
+ . nr % 0
66
+ . nr F 2
67
+ . \}
68
+ . \}
69
+ .\}
70
+ .rr rF
71
+ .\" ========================================================================
72
+ .\"
73
+ .IX Title "Bash+(1) 1"
74
+ .TH Bash+(1) 1 "January 2016" "Generated by Swim v0.1.41" "Modern Bash Programming"
75
+ .\" For nroff, turn off justification. Always turn off hyphenation; it makes
76
+ .\" way too many mistakes in technical documents.
77
+ .if n .ad l
78
+ .nh
79
+ .SH "Name"
80
+ .IX Header "Name"
81
+ Bash+(1) \- Modern Bash Programming
82
+ .SH "Synopsis"
83
+ .IX Header "Synopsis"
84
+ .Vb 1
85
+ \& source bash+ :std :array
86
+ \&
87
+ \& use Foo::Bar this that
88
+ \&
89
+ \& Array.new args "$@"
90
+ \&
91
+ \& if args.empty?; then
92
+ \& die "I need args!"
93
+ \& fi
94
+ \&
95
+ \& Foo::Bar.new foo args
96
+ \&
97
+ \& this is awesome # <= this is a real command! (You just imported it)
98
+ .Ve
99
+ .SH "Description"
100
+ .IX Header "Description"
101
+ Bash+ is just Bash... \fBplus\fR some libraries that can make Bash programming a lot nicer.
102
+ .PP
103
+ Get the source code from GitHub:
104
+ .PP
105
+ .Vb 1
106
+ \& git clone git@github.com:ingydotnet/bashplus
107
+ .Ve
108
+ .PP
109
+ Then run:
110
+ .PP
111
+ .Vb 2
112
+ \& make test
113
+ \& make install # Possibly with \*(Aqsudo\*(Aq
114
+ .Ve
115
+ .SH "Usage"
116
+ .IX Header "Usage"
117
+ For now look at some libraries the use Bash+:
118
+ .IP "\(bu" 4
119
+ <https://github.com/ingydotnet/git\-hub>
120
+ .IP "\(bu" 4
121
+ <https://github.com/ingydotnet/json\-bash>
122
+ .IP "\(bu" 4
123
+ <https://github.com/ingydotnet/test\-more\-bash>
124
+ .SH "Status"
125
+ .IX Header "Status"
126
+ If you are interested in chatting about this, \f(CW\*(C`/join #bpan\*(C'\fR on irc.freenode.net.
127
+ .SH "Author"
128
+ .IX Header "Author"
129
+ Written by Ingy döt Net <ingy@ingy.net>
130
+ .SH "Copyright & License"
131
+ .IX Header "Copyright & License"
132
+ Copyright 2013\-2016. Ingy döt Net.
133
+ .PP
134
+ The \s-1MIT\s0 License (\s-1MIT\s0).