Skip to main content

CLI Tool for quickly updating values across your project/machine.

Project description

build version codecov

xet CLI Usage Guide

Overview

xet is a command-line tool for managing and modifying values in multiple files using a configuration file (.xet). It supports various methods of identifying and modifying values, including tags, line/column positions, and regular expressions. You can create presets and change between them on the fly.

Installation

pipx install xet

or

pip install xet

Commands

Configuration

Initialize Configuration

xet init
  • Options:
    • -g, --global: Global Mode. Creates a .xet file in the XDG_CONFIG_HOME folder instead of locally.

Creates an empty .xet if it does not already exist.

Any xet command will use the .xet file in the immediate directory, if there is no local .xet the global .xet file will be used instead. You can force the usage of the global .xet using the -g, --global flag.

Open .xet in editor

xet edit
  • Options:
    • -g, --global: Edit the global .xet instead of the local one.

Opens .xet in your standard editor or nano.

Clarify .xet directory

xet which

Shows the absolute path to the default .xet that will be used if any xet command is run.

Print .xet entries

xet show [options]

Options:

  • -e, --except <flags>: Exclude entries with specified flags.
  • -o, --only <flags>: Include only entries with specified flags.
  • -n, --names <names>: Include only entries with specified names.
  • -p, --path <path>: Include only entries with specified path.
  • -g, --global: Use the global .xet.

Shows the .xet entries with the given optional filters applied.

Add Entries to Configuration

Add a Tag-Based Entry
xet add tag <name> <filepath> <tag> [options]
  • <name>: Identifier for the entry in xet.cfg.
  • <filepath>: Path to the target file.
  • <tag>: The string identifying the line to modify.
  • Options:
    • -f, --flags <flags>: Optional flags for filtering.
    • -w, --wrapper <char>: Wrap the value with a character (e.g., quotes), also gets stripped in get mode.
    • -o, --occurences <index or slice>: Specify which occurrences to modify (string formatted like a list index in python, can be slices).
    • -e, --end <str>: Will get appended in the line after value and wrappers, also gets stripped in get mode.
    • -p, --preset <str> <str>: Name and value of preset, option can be repeated to add multiple presets.
    • -s, --ssh <str>: Hostname of ssh-host the file is found at, as found in openSSH config file.
    • -g, --global: Add the entry to the global .xet.
Add a Line/Column-Based Entry
xet add lc <name> <filepath> <line> <column> [options]
  • <line>: Line number
  • <column>: Column position after which the value is placed.
  • Options:
    • -f, --flags <flags>: Optional flags for filtering.
    • -w, --wrapper <char>: Wrap the value with a character (e.g., quotes), also gets stripped in get mode.
    • -e, --end <str>: Will get appended in the line after value and wrappers, also gets stripped in get mode.
    • -p, --preset <str> <str>: Name and value of preset, option can be repeated to add multiple presets.
    • -s, --ssh <str>: Hostname of ssh-host the file is found at, as found in openSSH config file.
    • -g, --global: Add the entry to the global .xet.
Add a Regex-Based Entry
xet add regex <name> <filepath> <regex> [options]
  • <regex>: Regular expression to match values.
  • Options:
    • -f, --flags <flags>: Optional flags for filtering.
    • -c, --capture-group <int>: Capture group number to update.
    • -o, --occurences <index or slice>: Specify which occurrences to modify (string formatted like a list index in python, can be slices).
    • -w, --wrapper <char>: Wrap the value with a character (e.g., quotes), also gets stripped in get mode.
    • -p, --preset <str> <str>: Name and value of preset, option can be repeated to add multiple presets.
    • -s, --ssh <str>: Hostname of ssh-host the file is found at, as found in openSSH config file.
    • -g, --global: Add the entry to the global .xet.

Update Entries

xet update <key> <value> [options]
  • <key>: The key of the property to update ('name' will update the key of the entry).
  • <value>: The new value for the property. Options:
    • -e, --except <flags>: Exclude entries with specified flags.
    • -o, --only <flags>: Include only entries with specified flags.
    • -n, --names <names>: Include only entries with specified names.
    • -p, --path <path>: Include only entries with specified path.
    • -g, --global: Use the global .xet.

Updates the value of a property across filtered entries in the .xet.

Remove Entries

xet remove [options]

Options:

  • -e, --except <flags>: Exclude entries with specified flags.
  • -o, --only <flags>: Include only entries with specified flags.
  • -n, --names <names>: Include only entries with specified names.
  • -p, --path <path>: Include only entries with specified path.
  • -g, --global: Use the global .xet.

Removes the specified entries from the .xet.

Snapshot

xet snapshot <preset> [options]
  • <preset>: The name of the new preset. Options:
    • --first: When there is divergent values in seperate occurences in an entry, use the first value for the preset.
    • --split: When there is divergent values in seperate occurences in an entry, split the entry such that no divergences remain.
    • -e, --except <flags>: Exclude entries with specified flags.
    • -o, --only <flags>: Include only entries with specified flags.
    • -n, --names <names>: Include only entries with specified names.
    • -p, --path <path>: Include only entries with specified path.
    • -g, --global: Use the global .xet.

Adds a preset to the filtered entries using their current values.

Modifying Values

Get Values from Configured Files

xet get [options]

Options:

  • -e, --except <flags>: Exclude entries with specified flags.
  • -o, --only <flags>: Include only entries with specified flags.
  • -n, --names <names>: Include only entries with specified names.
  • -p, --path <path>: Include only entries with specified path.
  • -g, --global: Use the global .xet.

Set Values in Configured Files

xet set <value> [options]
  • <value>: The new value to be set. Options:
    • -e, --except <flags>: Exclude entries with specified flags.
    • -o, --only <flags>: Include only entries with specified flags.
    • -n, --names <names>: Include only entries with specified names.
    • -p, --path <path>: Include only entries with specified path.
    • -g, --global: Use the global .xet.

Set Values to Preset

xet preset <preset>
  • <preset>: Name of the preset to be set.
  • Options:
    • -g, --global: Use the global .xet.

History

Undo

xet undo

Undoes the changes of the last command.

Redo

xet redo

Redoes the last undone changes.

Forget

xet forget

Reset history file.

Example Usage

  1. Initialize Configuration:

    xet init
    
  2. Add a Tag-Based Entry:

    xet add tag version ./config.txt VERSION= -w '"'
    
  3. Get Values:

    xet get
    
  4. Set a New Value:

    xet set "2.0.1"
    
  5. Remove an Entry:

    xet remove version
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xet-1.2.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file xet-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: xet-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for xet-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3090027bc9fd4fee8796945d4041f3cd0213297eb899f7c3b91b229ff9d626a3
MD5 d3bc2fffd68a24c21e678733a9b9ad54
BLAKE2b-256 a288f030a378e97ab203a2145894f43e92afb9a32115cd526596216e4fa31aa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for xet-1.2.0-py3-none-any.whl:

Publisher: python-publish.yml on GeraldIr/xet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page