Commit Graph

348 Commits

Author SHA1 Message Date
Kim Alvefur
d302d75c77
Implement basic Lua output support (#1745)
* Implement basic Lua output support

Ref #1700

Basic but working serialization to Lua tables.

* Escape larger set of characters in Lua output

Started with a minimum of replacements, this should be more complete,
tho not all substitutions are strictly required in Lua.

* Print simple keys unquoted in Lua output

String keys that satisfy the requirements for variable names can be used
as keys without quotes in tables.

* Quote Lua keywords in table keys

Keywords are not valid as unquoted keys, thus must be quoted

* Make output of unquoted Lua table keys optional

Generally safer and simpler to not do it.

* Hook up settings for Lua output

* Allow special characters in Lua prefix and suffix

--lua-suffix='});^M' didn't work, so taking this approach instead

* Panic on unhandled YAML Kind in Lua encoder

* Handle YAML case varied booleans in Lua encoder

* Handle special-case numbers in Lua encoder

* Reject unhandled scalar Tags in Lua encoder

* Add note about how Lua nil is unsuitable as table key

Could add some context tracking in the future to allow rejecting nil in
a table key context.

* Return error instead of panic in Lua encoder

* Add initial test for Lua encoder

Boilerplate mostly copied from toml_test.go

* Additional Lua output tests

* Generate Lua encoder documentation

Mostly just for the boilerplate

* Convert octal for Lua output

Lua doesn't have the 0oNNN syntax for octal integers, only decimal and
hexadecimal, hence those can be passed trough as is while octal needs
special treatment.

* Implement indentation in in Lua output

* Respect string Style in Lua encoder

Lua has 'single', "double" and [[ long ]] strings.

* Expand Lua examples

* Output line comments in Lua output

* Implement Lua globals output mode
2023-08-11 12:56:49 +10:00
Mike Farah
0b34c9a00d Bumping version 2023-07-12 12:32:14 +10:00
Mike Farah
5ef537f3fd Bumping version 2023-05-23 13:27:28 +10:00
Giorgio Gallo
80b42b81fd
Implement shell output format (#1645)
* fix typo in a comment

* implement shell output format

* fix a typo

* add two test cases, have source uses ascii only

* add integration tests and documentation

* add fixes after code revieew
2023-05-04 11:06:56 +10:00
Mike Farah
d2f1ae9db7 Bumping version 2023-04-11 12:06:26 +10:00
Mike Farah
eba075294a Added scalar output for TOML (#1617) 2023-04-03 15:40:06 +10:00
Mike Farah
d5bbe5bea5 Bumping version 2023-03-31 10:21:59 +11:00
Valentin Lab
5fd2890d1b
Add `--nul-output|-0` flag to separate element with NUL character (#1550)
This is to ensure solid parsing of complex data (with any binary
content except NUL chars) by separating the `yq` root collection
member's output with NUL char. As a safe-guard, an error will be cast
if trying to use NUL character with content that contains itself NUL
characters inside.
2023-03-29 09:51:55 +11:00
Mike Farah
ebd1548e96 Bumping version 2023-03-26 11:12:36 +11:00
Mike Farah
aebdbb4113 Added warning for auto-input json files 2023-03-26 11:00:05 +11:00
Mike Farah
7103b78d38
Draft: Toml (#1439)
* toml wip

* wip

* Fixed auto parsing toml

* Added build flag not to include toml

* Parse toml docs and tests

* minor updates
2023-03-26 10:59:15 +11:00
Mike Farah
4ee4b09e12 Bumping version 2023-03-20 10:21:49 +11:00
Mike Farah
48b481b68d Unknown file type should default to yaml, Fixes #1609 2023-03-20 09:16:20 +11:00
Mike Farah
875cfdc945 Bumping version 2023-03-18 14:53:56 +11:00
Mike Farah
08a6cb65fe
Auto output format (#1599)
* Use file extension to auto detect output format!

* Use file extension to auto detect output format!

* formatting
2023-03-15 13:22:58 +11:00
ryenus
d30941b575
Detect input format based on file name extension (#1582)
* detect inputFormat from filename

* refactor and extract func InputFormatFromFilename

* detect inputFormat only when file is provided

* add test for automatic input format detection
2023-03-09 10:17:19 +11:00
Mike Farah
47f4f8c793 Bumping version 2023-03-02 10:58:57 +11:00
Anders Björklund
cf8cfbd865
Allow build without json and xml support (#1556)
* Refactor ordered_map into separate files

Separate json and xml, from the regular yaml.

Makes it possible to compile, without those...

* Refactor encoder and decoder creation

Use more consistent parameters vs globals

Return errors instead of calling panic()

* Allow build without json and xml support
2023-03-01 13:19:06 +11:00
Mike Farah
b86fb0aea0 Bumping version 2023-02-20 16:09:07 +11:00
Mike Farah
dd6cf3df14 Bumping version 2023-01-15 11:37:07 +11:00
Mike Farah
ec40a1a08a Bumping version 2023-01-14 14:05:19 +11:00
Mike Farah
87cba2ecbe Bumping version 2022-12-17 11:16:38 +11:00
Mike Farah
42e7c3cdf0 Bumping version 2022-11-28 08:36:05 +11:00
Mike Farah
43233ce62e Fixed xml decode bug when there is content after a comment 2022-11-25 13:21:19 +11:00
Mike Farah
a6d1a52e33 Fixing versioning code for release 2022-11-15 20:08:58 +11:00
Takumi Sue
1fd96e168e
Fix mis-versioning due to hardcoding cmd.Version (#1431) 2022-11-14 16:38:43 +11:00
Mike Farah
88ce6ffcbe Hotfix: actually update the default xml attribute prefix #1428 2022-11-13 11:13:34 +11:00
Mike Farah
83ef7ee5cf Releasing yq 2022-11-11 14:55:03 +11:00
Mike Farah
ececd00fbd Updated default xml naming prefix 2022-11-10 22:22:55 +11:00
Mike Farah
cad809515c Refactoring 2022-11-10 22:07:53 +11:00
Mike Farah
1d35134310 Unwrap scalar now works for JSON encoding when explicitly set #1409 2022-11-10 19:21:18 +11:00
Mike Farah
5e490527de Bumping version 2022-10-31 09:05:56 +11:00
Mike Farah
0cc5e75432 Bumping version 2022-10-29 18:24:19 +11:00
Mike Farah
880397d549
Refactored decoder responsibilities (#1402)
- improved comment handling
- yaml decoder now responsible for leading content work around
2022-10-28 14:16:46 +11:00
Mike Farah
24bbffd71e xml prefs should be part of API 2022-10-25 14:27:16 +11:00
Mike Farah
6d6b693fb3
Added XML processing instructions and directive support (#1396) 2022-10-24 10:09:42 +11:00
Mike Farah
1f0881fb5f Bumping version 2022-10-19 11:14:32 +11:00
dependabot[bot]
9ca20451b7
Bump github.com/spf13/cobra from 1.5.0 to 1.6.0 (#1380)
* Bump github.com/spf13/cobra from 1.5.0 to 1.6.0

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fixed deprecated usage of ExactArgs

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mike Farah <mikefarah@gmail.com>
2022-10-17 15:15:19 +11:00
Mike Farah
ffe635f943 Bumping version 2022-10-05 20:15:02 +11:00
Mike Farah
9b6961875e Bumping version 2022-09-09 12:29:41 +10:00
Mike Farah
851d93e5a8 Bumping version 2022-09-09 11:23:14 +10:00
Mike Farah
3d11b0545d Bumping version 2022-08-29 15:41:07 +10:00
Mike Farah
1c7dc0e88a Bug fix 2022-08-01 16:27:42 +10:00
Mike Farah
6dfef716d7 Bumping version 2022-08-01 14:00:13 +10:00
Mike Farah
c8815f5ab9
Csv decoder (#1290)
* WIP: adding CSV decoder

* Adding CSV decoder

* Added CSV roundtrip

* Fixing from review
2022-08-01 10:28:34 +10:00
Mike Farah
b9a1ef89fe
Added NDJSON decoder (#1281) 2022-07-27 12:26:22 +10:00
Mike Farah
c2c48bbe1d Bumping version 2022-07-15 10:27:18 +10:00
Daniel Carbone
98b411f82e
adding support for --wrapScalar=false in properties encoder (#1241)
* adding support for --wrapScalar=false in properties encoder

* altering encoder and decoder tests somewhat

* adding .idea

* Revert "altering encoder and decoder tests somewhat"

This reverts commit e3655130e2.

* adding test scenario for encoding with wrapped scalars
2022-06-25 12:22:03 +10:00
Mike Farah
b669844ef7 Bumping version 2022-06-23 19:45:54 +10:00
Sandro
7fe937c61e
Map -r to --unwrapScalar to be more a drop in replacement for jq (#1245) 2022-06-23 14:31:31 +10:00
Mike Farah
2bc7dcfcca Handle xml namespaces by default 2022-06-15 17:12:57 -07:00
rndmit
b9309a42a4
XML decoder additions (#1239)
* Add xml-keep-namespace and xml-raw-token features

* Add tests

* Change flags usage strings

* Append docs
2022-06-15 09:40:31 +10:00
Mike Farah
70403375d7 Bumping version 2022-05-28 13:38:53 +10:00
Mike Farah
fbe49c3700 Added colors to json output #1208 2022-05-22 21:19:59 +10:00
Mike Farah
1425d0720e Bumping version 2022-04-29 11:57:37 +10:00
Mike Farah
55c5497fab Can specify a split expression file #1194 2022-04-29 11:08:41 +10:00
Mike Farah
70ad7a35a8 Don't automatically read stdin when the null input flag is used 2022-04-27 09:24:25 +10:00
Mike Farah
3ad5355777 Fixes bug when using inplace with no expression and multiple files #1193 2022-04-27 09:08:50 +10:00
Mike Farah
ed5b811f37 Bumping version 2022-04-15 08:51:55 +10:00
Mike Farah
5d225b9454 Updating readme 2022-03-29 13:15:27 +11:00
Mike Farah
bc2118736b v4.24.2 2022-03-28 14:36:27 +11:00
Mike Farah
1780027421 Bumping version 2022-03-28 14:24:28 +11:00
Mike Farah
bbeae229ca Disable strict XML parsing by default #1155 2022-03-28 14:05:10 +11:00
Mike Farah
03f57b7034 Bumping version 2022-03-20 13:03:40 +11:00
Mike Farah
e08b6803f5 Simplify json > yaml cli example 2022-03-20 10:58:37 +11:00
justin-f-perez
1a964c5055
update cli help (#1146)
- remove duplicate comment
- add common use case (json -> idiomatic yml)
2022-03-20 10:54:24 +11:00
Mike Farah
3924ed8a35 Bumping version 2022-03-10 13:50:53 +11:00
Mike Farah
33a29817d7 Can load expressions from file #1120 2022-03-01 11:50:09 +11:00
Mike Farah
f0b37ea06d Bumping version 2022-02-27 12:03:10 +11:00
Mike Farah
558a18029a Bumping version 2022-02-20 14:34:55 +11:00
Mike Farah
304fc462a4 No longer auto-read from STDIN if there are files given (#1115) 2022-02-20 13:15:21 +11:00
Mike Farah
6374098cdc Bumping version 2022-02-15 13:40:47 +11:00
Mike Farah
a9c3617b4f
Decoder Properties (#1099)
* Decoder Properties

* Added properties round trip test

* Fixed property decode for github actions

* Refactored XML test to use common functions

* Switched formatScenario parameter order for more readablity
2022-02-10 12:02:53 +11:00
Mike Farah
26356ff4be Added github action fix for parsing xml, updated linter 2022-02-07 11:55:55 +11:00
Mike Farah
2891c6948d Added expression argument to forcibly set expression if required 2022-02-07 09:27:52 +11:00
Mike Farah
703418d0c4 Automatically add "-" when piping and its missing 2022-02-07 09:09:11 +11:00
Mike Farah
75960c6484 Allow multiple files with no expression 2022-02-07 08:23:53 +11:00
Mike Farah
5ac3c57510 Fixed bug - ignore path expressions that match a directory 2022-02-07 08:04:26 +11:00
Mike Farah
926a68181b Bumping version 2022-02-06 14:39:56 +11:00
Mike Farah
535799462f Added eval operator 2022-02-01 14:47:51 +11:00
Mike Farah
9b7c80a76b Bumbing version 2022-01-28 10:06:25 +11:00
Mike Farah
a6fc7aa881 Updating docs 2022-01-28 10:06:25 +11:00
Mike Farah
dedd1ca892 Fixing github build 2022-01-27 15:54:26 +11:00
Mike Farah
3ba728d40c Working around github strangeness 2022-01-27 13:54:29 +11:00
Mike Farah
8761920f58 Debug github build 2022-01-27 13:24:05 +11:00
Mike Farah
4ec533bc1b No longer have to specify eval! 2022-01-27 12:07:41 +11:00
Mike Farah
fc276ff450 Smarter behaviour when piping data in with one argument 2022-01-27 10:18:46 +11:00
Mike Farah
71242b0c8e Fix Seg Fault on bad split expression input #1086 2022-01-27 09:29:41 +11:00
Mike Farah
a0ba208669 Bumping release 2022-01-22 11:57:19 +11:00
Mike Farah
02252e8e69 Bumping version 2022-01-22 11:48:08 +11:00
Mike Farah
2526b03d67 Added JSON conversion tests and doc generation 2022-01-21 20:26:19 +11:00
Mike Farah
ec8ef312ef
Added XML encoding/decoding (#1067)
* Added XML encoding/decoding

* Minor fixes

* Improve yq doc

* Lint
2022-01-15 11:57:59 +11:00
Mike Farah
606ef91cc6 Better fix #1062 (return error instead of panic) 2022-01-14 15:40:24 +11:00
Mike Farah
c48b1612df Updating cli docs 2021-12-21 17:07:32 +11:00
Mike Farah
6763ae6e7b Added xml acceptance tests 2021-12-21 17:05:33 +11:00
Mike Farah
2ee9c65bc2 Added global xml prefs for simplicity 2021-12-21 16:52:54 +11:00
Mike Farah
df32baedf1
Added XML decoder (#1044) 2021-12-21 15:02:07 +11:00
Mike Farah
915e9de437 Bumping version 2021-12-21 09:41:46 +11:00
Mike Farah
d0fda699e4 Bumping version 2021-12-04 14:00:27 +11:00
Matthieu MOREL
15d7c9e118 enable misspell linter 2021-11-25 22:01:30 +11:00