Skip to content

Latest commit

 

History

History
140 lines (98 loc) · 5.89 KB

README.md

File metadata and controls

140 lines (98 loc) · 5.89 KB

Crates.io Codacy Badge codecov CI Update release version. Public workflows that use this action.

Ubuntu Mac OS Windows

json2file

Simplifies the process of serializing JSON data to a file.

Usage

...
    - name: Set output
      id: set-output
      run: |
        echo "color=green" >> $GITHUB_OUTPUT

    - name: Generate file output from json
      uses: tj-actions/json2file@v1
      with:
        directory: 'output'
        outputs:  ${{ toJSON(steps.set-output.outputs) }}
        keys: 'color'
        extension: 'txt'
...

The above example will create a file named color.txt in the output directory with the contents green.

$ cat ./output/color.txt
green

Inputs

INPUT TYPE REQUIRED DEFAULT DESCRIPTION
bin_path string false Path to the binary
directory string true ".github/outputs" Directory to write to
extension string false "txt" File extension to use, possible
values: txt, json
keys string true List of Keys to read
from the outputs JSON string
outputs string true JSON string
skip_missing_keys string false "false" Skip missing keys not found
in the outputs JSON string

Installation

To install json2file, open a terminal window (Command Prompt or PowerShell on Windows) and run the following command:

cargo install json2file

Building from Source

If you prefer to build from the source, follow these steps:

git clone https://github.com/tj-actions/json2file
cd json2file
cargo build --release

CLI Reference

Run json2file --help for more information.

$ json2file --help
Generate file output from JSON

Usage: json2file [OPTIONS] --keys <KEYS> --outputs <OUTPUTS> --directory <DIRECTORY>

Options:
  -k, --keys <KEYS>            Space delimited list of keys to extract from the JSON output
  -o, --outputs <OUTPUTS>      The JSON output to use
  -d, --directory <DIRECTORY>  The directory to output the files to
  -s, --skip-missing-keys      Skip missing keys
  -e, --extension <EXTENSION>  The extension to use for the files [default: txt] [possible values: txt, json, csv]
  -v, --verbose                
  -h, --help                   Print help
  -V, --version                Print version

Example

Run

json2file --keys="foo bar" --outputs="{\"foo\": \"value1\", \"bar\": \"value2\"}" --directory=/tmp --extension=txt

This creates two files with the following contents:

foo.txt

value1

bar.txt

value2

If you feel generous and want to show some extra appreciation:

Buy me a coffee

Credits

This package was created with Cookiecutter using cookiecutter-action

Report Bugs

Report bugs at https://github.com/tj-actions/json2file/issues.

If you are reporting a bug, please include:

  • Your operating system name and VERSION.
  • Any details about your workflow that might be helpful in troubleshooting.
  • Detailed steps to reproduce the bug.