Skip to main content

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

Project description

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.

Installation

Ensure you have Python 3 installed. Place the script in a directory included in your system's PATH and make it executable:

chmod +x xet/xet 
cp xet/xet /usr/local/bin/xet

You can also just run the install.sh script which should do the same in most cases.

Commands

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, unless the -g, --global flag is set, then the global .xet file will be used instead.

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

Opens .xet in your standard editor or nano.

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.
    • -d, --padding <int>: Number of whitespace-padding which gets added after tag and before end.
    • -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.
    • -d, --padding <int>: Amount of whitespace-padding which gets added after tag and before end.
    • -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.

Get Values from Configured Files

xet get [-e <flags>] [-o <flags>] [-n <names>]

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.
  • -g, --global: Use the global .xet.

Set Values in Configured Files

xet set <value> [-e <flags>] [-o <flags>] [-n <names>]
  • <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.
    • -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.

Remove an Entry

xet remove <name>
  • <name>: Name of the entry to be removed.
  • Options:
    • -g, --global: Remove the specified entry from the global .xet.

Removes the specified entry from .xet 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-0.5.0-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: xet-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for xet-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe8166c25f82008cb69df8d282896294a492a57c306f288fe52931277897baad
MD5 a6de5fd231c9c88aa4a8416490a9859e
BLAKE2b-256 6400d01e274cf6fb275769772cfdd41e1d1d2a26bc2e3f0b1020ca28731f04f3

See more details on using hashes here.

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