Skip to content

A tool for getting data from TOML files on the command line

License

Notifications You must be signed in to change notification settings

cryptaliagy/tomlq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tq

This repository was previously available under cryptaliagy/tq-rs, and by the crate tq-rs.

The current iteration of this crate supports both the tq and tomlq binaries. Wherever possible, tq should be preferred, and tomlq will be removed from the crate for the 0.2.0 version (scheduled for January 1, 2025).

Installing

  • Using cargo (compiles from source): cargo install tomlq
  • Using cargo-binstall (downloads from Github Releases page): cargo binstall -y tomlq

Migrating from tq-rs crate

The only step that is required to migrate from tq-rs to tomlq is to change the cargo install (or cargo binstall) step from referencing tq-rs to referencing tomlq. The binary has the same name, and the usage is the same.

Usage

N.B. Use tq --help after installing for more information

Getting package version from Cargo.toml

tq -f Cargo.toml 'package.version'

Exporting package version as job output in Github Actions

jobs:
  get-version:
    runs-on: ubuntu-latest
    outputs:
      version: ${{ steps.get-version.outputs.version }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install cargo-binstall
        run: curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash

      - name: Install tq
        run: cargo binstall -y tomlq

      - id: get-version
        name: Output the current version of the project
        run: echo "version=$(tq -f Cargo.toml 'package.version')" >> "$GITHUB_OUTPUT"

N.B. See the release pipeline file for how this job is used.

Contributions

Contributions are welcome! I just needed this one feature, so I haven't spent any additional time on this. If you have an idea, please feel free to open an issue, if you've implemented some additional features, please feel free to open a PR!

License

Licensed under the MIT License