go-script-bash v1.1.0
This release adds some major new features, two new builtin commands, and multiple bug fixes and internal improvements.
The ./go script: a unified development environment interface
Source: https://github.com/mbland/go-script-bash
A ./go script aims to abstract away many of the steps needed to develop (and sometimes deploy) a software project. It is a replacement for READMEs and other documents that may become out-of-date, and when maintained properly, should provide a cohesive and discoverable interface for common project tasks.
The ./go script idea came from Pete Hodgson's blog posts In Praise of the ./go Script: Part I and Part II.
Note: The ./go script concept is completely unrelated to the Go programming language, though the Go language's go command encapsulates many common project functions in a similar fashion.
This software is made available as Open Source software under the ISC License. If you'd care to contribute to this project, be it code fixes, documentation updates, or new features, please read the CONTRIBUTING.md file.
What's new in this release
Modules
You can import optional Bash library code from the core framework, third-party plugins, or your own project's scripts directory by sourcing the _GO_USE_MODULES script. See the Modules section of the README or run ./go help modules and ./go modules --help for more information.
Logging
The core library log module provides functions for standard logging facilities. For more information, see the Logging section from the README and run ./go modules --help log.
Bats test assertions and helpers
The assertions and helpers from the test suite have been extracted into the lib/bats/assertions and lib/bats/helpers libraries. See the Bats test assertions and helpers section from the README and read the comments from each file for more information.
kcov-ubuntu module for test coverage on Linux
The kcov-ubuntu module provides the run_kcov function that uses kcov to collect test coverage on Ubuntu Linux. See the kcov-ubuntu module for test coverage on Linux section of the README and run ./go modules --help kcov-ubuntu for more information.
Exported _GO_* variables and the vars builtin command
A number of global variables starting with the prefix _GO_* are exported as environment variables and are available to command scripts in all languages. See the Command script API section from the README and run ./go help vars for more information.
Changes since v1.0.0
9411a89 Mike Bland
Merge pull request #23 from mbland/version
e8ef35b Mike Bland
core: Introduce _GO_CORE_VERSION
17a69d2 Mike Bland
Add documentation improvements for v1.1.0 release
ecd2d81 Mike Bland
use: Unset correct variable
006c38b Mike Bland
Merge pull request #22 from mbland/remove-stale-files
e17c181 Mike Bland
Remove old test `./go` scripts
f9675e5 Mike Bland
Merge pull request #21 from mbland/plugins
33c54b6 Mike Bland
plugins: Revert changes from #20
ce20155 Mike Bland
Merge pull request #20 from mbland/vars
6b376eb Mike Bland
vars: Make test array quotifying more robust
241d2c7 Mike Bland
Revamp `_GO_*` var exports, add `vars` builtin
7c1123b Mike Bland
Move all _GO_* vars to core and document them
17beb1e Mike Bland
Merge pull request #19 from mbland/assert-lines-equal
70d546f Mike Bland
assertions: Add assert_lines_equal
32d47fc Mike Bland
changes: Don't add `^` to end ref
580f08d Mike Bland
core: Tweak COLUMNS test slightly
47b6e63 Mike Bland
Merge pull request #18 from mbland/columns
5292839 Mike Bland
core: Fix test for OS X on Travis without /dev/tty
c7ee892 Mike Bland
core: Reproduce and fix `tput cols` error from #17
664a51f Mike Bland
Merge pull request #17 from mbland/columns
5bdbd2c Mike Bland
core: Update how COLUMNS is set
5fc49a5 Mike Bland
log: Skip setup-project test case on MSYS2
0e91281 Mike Bland
Merge pull request #16 from mbland/log-setup
ecb6b83 Mike Bland
log: Fix @go.critical_section_end return bug
b7f7699 Mike Bland
log: Add @go.setup_project function
ed05f2b Mike Bland
Merge pull request #15 from mbland/log-command
da20203 Mike Bland
log: Add log_command tests for @go command cases
db79ba1 Mike Bland
log: Add @go.log_command, critical section flag
43fae60 Mike Bland
Merge pull request #14 from mbland/add-or-update-log-level
949fb32 Mike Bland
log: Implement @go.add_or_update_log_level
dd712c6 Mike Bland
Merge pull request #13 from mbland/log
0a7bc5e Mike Bland
lib/log: Add logging module
31a1d30 Mike Bland
complete: Fix typo in internal library comment
3cc22b0 Mike Bland
Merge pull request #12 from mbland/assertions
0d94845 Mike Bland
Revert previous two commits
f4a0f85 Mike Bland
assertions: Reset return trap when trap exits
7ca3d05 Mike Bland
assertions: Introduce bats_assertion_return_trap
40d6218 Mike Bland
assertions: Make public return_from_bats_assertion
87bb07c Mike Bland
assertions: Reproduce and fix latent functrace bug
52bc541 Mike Bland
Merge pull request #11 from mbland/complete
112e046 Mike Bland
env/bash: Put single quotes around unset argument
e7f02fe Mike Bland
complete: Eliminate compgen from internal library
096f0f3 Mike Bland
bats/assertions: Change double quotes to single
d8e4231 Mike Bland
complete: Replace most compgen calls with echo
4d61457 Mike Bland
complete: Switch all tests to use ./go complete
54e8e9a Mike Bland
Merge pull request #10 from mbland/tput-fix-test-docs
e779deb Mike Bland
test: Expand comments, refactor slightly
b9792bf Mike Bland
kcov-ubuntu: Update run_kcov function comment
4c66893 Mike Bland
core: Undo tput error redirect
676dd18 Mike Bland
Merge pull request #9 from mbland/bats-libs
69fb63b Mike Bland
bats/assertions: Reorder functions, add docs
d692bb9 Mike Bland
bats/assertions: Add optional fail() reason, docs
ac8ed3f Mike Bland
tests: Extract public bats/assertions module
2707493 Mike Bland
tests: Consolidate environment.bash
c77932e Mike Bland
kcov: Convert to public kcov-ubuntu module
1a47920 Mike Bland
cmd-desc: Remove create_test_command_script calls
3deee25 Mike Bland
run-cmd: Update _GO_* var tests to run subcommands
4168b58 Mike Bland
Extract public bats/helpers module
87ce40a Mike Bland
Merge pull request #8 from mbland/cmd-name-argv
202b17c Mike Bland
core: Export _GO_CMD_{NAME,ARGV}, add Bash test
d674191 Mike Bland
Merge pull request #7 from mbland/cmd-desc
9bd1524 Mike Bland
core: Default to 80 columns on all tput errors
47d9476 Mike Bland
TEMP: Print value of $TERM to debug Travis issue
271c726 Mike Bland
core: Check $TERM before setting columns with tput
c1ba9c8 Mike Bland
cmd_desc: Show full command names in descriptions
c2098c4 Mike Bland
Merge pull request #6 from mbland/core-updates
2777ca8 Mike Bland
core: Export variables for non-Bash script access
1158bc7 Mike Bland
core: Escape % when only one @go.printf argument
995daf0 Mike Bland
script_helper: Default to bash, allow other langs
6444f51 Mike Bland
Merge pull request #5 from mbland/modules-builtin
0a4886a Mike Bland
README: ./go modules help => ./go modules --help
78c447a Mike Bland
test, modules: Quote $_GO_USE_MODULES, add docs
9bb7a45 Mike Bland
Add modules builtin command
766a354 Mike Bland
command_descriptions: Trim trailing whitespace
e764723 Mike Bland
command_descriptions: Return error if read fails
7cd5dd5 Mike Bland
kcov: Add note explaining 2>/dev/null redirection
80b7abe Mike Bland
test: Use time builtin
4c8f931 Mike Bland
complete: Add public module, completion removal
97fd0df Mike Bland
test/script_helper: Add TEST_GO_PLUGINS_DIR
2d88f57 Mike Bland
format: Add public module, pad and zip functions
8c23dcd Mike Bland
Merge pull request #3 from mbland/lightning-talk
4f1e6c6 Mike Bland
README: Update location of lib/internal/env
515730d Mike Bland
README: Add link to Surge 2016 lightning talk
2cbfdda Mike Bland
Merge pull request #2 from mbland/use-modules
a5973af Mike Bland
use: Fix test for bash < 4.4
55d09f9 Mike Bland
test: Replace direct source with _GO_USE_MODULES
ed78d9f Mike Bland
core: Add _GO_USE_MODULES for optional modules
2d5cb96 Mike Bland
Merge pull request #1 from mbland/refactor
345dd55 Mike Bland
Lowercase __go_orig_dir, unset temp globals
e6c29fd Mike Bland
Move all lib/ files to lib/internal/
1634d85 Mike Bland
core: Refactor, update comments