173 Commits

Author SHA1 Message Date
7e86c1a5f5 Detect when variables are declared and not set
It is possible to declare a variable but not assign a value to it using
`export x`. When you do this, `declare -p x` shows the variable but does
not show an "=" nor any value afterwards.

When running another command, this variable will not be added to the
environment variables even though it is flagged as exported. Most likely
it's because the value is not a string and can't be easily converted to
a string; this is the same behavior as arrays.

Using `[[ -v x ]]` is also inadequate and I believe its because there
are false positives when trying to access data, which goes on to break
tests and the new braces and parenthesis indirection. Perhaps it could
be reviewed and made to work.

The best solution so far is to combine `declare -p` with `[[ -v` to see
if the variable is declared and if a value is set.

Closes #75.
2024-07-24 12:22:03 -05:00
b595ad26b7 Documenting that parents are not supported 2024-06-21 20:44:16 -05:00
5a49fe9900 Releasing 3.0.6 2024-06-16 21:13:43 -05:00
8056ee6961 Only cut strings once
It's faster to loop through the string and check the character at an
index than it is to trim single characters from the end in a loop.
Trimming multiple characters in the loop is surprisingly slower than
trimming one.

Addresses more of the speed problem reported in #73.
2024-06-16 21:11:45 -05:00
5db34e55d3 Caching function name lookups
Faster than dumping functions each time.
Related to #73.
2024-06-16 21:11:02 -05:00
26ca5059d8 Fix slowness with larger templates
Closes #69 and #71
Released 3.0.5
3.0.5
2024-03-27 21:57:11 -05:00
6e57510ba9 Making it more clear that sourced files are shell
Addresses part of the concerns from #69
3.0.4
2023-11-16 16:04:52 -06:00
54b2184b70 Bumping version 3.0.3 2023-09-10 08:11:54 -05:00
84d17268c9 Work with symbolic links 2023-09-10 08:10:51 -05:00
68306c4c6d More Bash 4.x compatibility issues found and fixed 3.0.2 2023-05-12 08:17:57 -05:00
6cc72acde0 Fix #67 - unbound variable error
Release 3.0.1
3.0.1
2023-05-12 07:44:48 -05:00
0ce41dedb1 Releasing 3.0.0 3.0.0 2023-05-07 21:18:00 -05:00
0617b2ed35 Various bugfixes
Specs: 181 total, 119 pass (with 7 overridden), 55 fail, 7 skip
2023-04-23 10:04:59 -05:00
1d4e186486 All tests pass.
Specs: 181 total, 111 pass (with 7 overridden), 63 fail, 7 skip.
2023-04-23 09:24:36 -05:00
0f150ccb19 Fixing standalone detection with blocks
27 tests pass, 18 still fail
2023-04-22 08:16:49 -05:00
00af7d49f0 Bugfixes 2023-04-21 21:18:55 -05:00
0896e2b966 Parser rewritten again 2023-04-21 20:59:31 -05:00
511a3187e8 Changing how parsed/unparsed content is tracked
Use global variables instead of passing to every function.

112 specs pass, 7 overridden, 62 fail, 7 skipped.
2023-04-10 21:07:45 -05:00
d32b912472 Moving delimiters and standalone to global vars 2023-04-10 13:24:06 -05:00
3a58ee390e More bugfixes and shellcheck tweaks 2023-04-10 11:39:47 -05:00
7604ce3054 Pass shellcheck, more specs are handled, preserve function whitespace
This closes #49.
2023-04-10 08:10:14 -05:00
e0e9189355 Bugfixes, pretty printing, new tests added
Spec result: 108 specs pass, 6 skipped, 67 fail
2023-04-09 18:53:55 -05:00
a1e4398547 Overriding some tests so they work with mo + bugfix 2023-04-09 10:20:45 -05:00
47e10012ee Splitting parse function, fixing variable bug 2023-04-09 09:52:18 -05:00
a237d23a2d Fix standalone tag detection 2023-04-08 19:06:04 -05:00
72a0e426c7 Starting support for skipping/altering tests
Bash doesn't support advanced data structures, like objects. The goal is
to switch simple objects to associative arrays automatically, then
override other tests so they don't use deeply-created structures.
2023-04-08 12:41:46 -05:00
501ca2144f Need to trim whitespace in the tag 2023-04-08 12:41:31 -05:00
2085dc2792 Rewriting how specs run 2023-04-08 11:52:22 -05:00
d997ad0e0a Passes all of the tests 2023-04-07 23:10:47 -05:00
febd3467c8 Attempting to address shortcomings and whitespace issues 2023-04-07 19:35:25 -05:00
8e9fd680d4 Fixing a test, release 2.4.1 2.4.1 2023-04-05 21:14:19 -05:00
24e80aedaa Bumping version
2.3.0 was already tagged
2.4.0
2023-04-05 20:55:16 -05:00
4311f29879 Fixing the build, some doc cleanup, update version 2023-04-05 20:54:27 -05:00
d6794de1e2 Merge pull request #57 from Swivelgames/loop-accessors
Feature: Key and Index Accessors Inside Loops
2023-04-05 20:51:13 -05:00
b22baa9776 Added Functions/Helpers to README 2023-04-05 20:19:42 -05:00
c28bffe708 Added @key loop accessor 2023-04-05 20:19:29 -05:00
b01fc43580 Merge pull request #60 from Swivelgames/portability
Improved portability by using /usr/bin/env pragma
2023-04-04 09:50:21 -05:00
53e3208ba0 Improved portability by using /usr/bin/env pragma 2023-04-04 02:00:31 -05:00
6dc284f05a Updating URLs
Closes #53
2023-04-03 12:57:14 -05:00
a62541fc98 Adding missing character, reported by brainchild0 2022-01-26 19:07:12 -06:00
b31a97cfb1 Merge pull request #51 from brainchild0/docker
improve docker image
2022-01-26 10:00:28 -06:00
71f85fa4f2 Use latest Alpine image as Docker base 2022-01-25 17:34:56 -05:00
14003ba24a Introduce general improvements for Docker image 2022-01-24 20:51:27 -05:00
54195a6c6e Fixing test script to return 0 on success 2.3.3 2021-11-25 16:02:21 -06:00
81f9ec326d Leaning away from committing package.json
Thank you yutachaos!
2.3.2
2021-11-25 15:59:30 -06:00
dae1c66f8f Merge branch 'feature/added_github_action' of https://github.com/yutachaos/mo into yutachaos-feature/added_github_action 2021-11-25 15:57:52 -06:00
08576fca7b Adding script to run against official specs 2021-11-25 15:40:13 -06:00
3aa5c462f8 Quoting variable
This suggestion is brought to you by neema80 - thank you!

This closes #48.
2021-11-25 15:36:47 -06:00
a28ed0ccd5 Added docker image push action 2021-04-23 13:01:42 +09:00
c86fd9a89b Merge pull request #45 from yutachaos/feature/added_docker_release
Added dockerfile and release GitHub Action
2.3.1
2021-04-17 11:02:12 -05:00