Skip to main content

Cstow

Demo

About

There's lots of dotfiles managers, but my favorite is GNU Stow.

It has only two problems: boring UI and no config. Cstow solves them.

Name

Constantine's GNU Stow wrapper.

Some GNU Stow Terminology

A target directory is the root of a tree in which one or more packages wish to appear to be installed.

A stow directory is the root of a tree containing separate packages in private subtrees.

Installation

Use pipx

pipx install cstow

Or pip

pip install cstow

Configuration

Set CSTOW_CONFIG_PATH to path/to/your/cstow_config.toml. Use any file name you want.

Examples

Config Contents

Cstow expands ~ and $AN_ENVIRONMENT_VARIABLE.

Name Type Description Default
root_dir String The root of stow directories /
cmd_template String The template for GNU Stow commands See below
targets_dirs Table Targets (keys) and dirs (values)
targets_dirs (key) String A target directory
targets_dirs (value) Array of strings Stow directories for the target

root_dir

You might set it to ~/dotfiles or $DOTFILES.

If you don't set root_dir, use absolute paths in targets_dirs.

cmd_template

You can set it to any shell command, but every variable must be used at least once.

Cstow escapes variables so don't even try shell-injecting yourself!

Variables

Variable Description
action A GNU Stow action (no, stow, restow, delete)
target A target directory
dir A stow directory

Default

stow --$action --no-folding --verbose --target=$target --dir=$dir . \
     2>&1 | grep --invert-match --regexp="^BUG" --regexp="^WARN"

Usage

# Get some help
cstow -h
cstow --help

# Run an action
cstow               # Default action is 'no'
cstow no            # Action is a positional argument
cstow -a no         # But flags also work
cstow --action no

# Print plain text
cstow stow -p
cstow restow --plain
cstow -p -a delete

Metadata

Release files for cstow 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cstow 1.0.0
File Size Uploaded
cstow-1.0.0.tar.gz 6.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cstow 1.0.0
File Interpreter ABI Platform
cstow-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.0 kB

Release files / cstow-1.0.0.tar.gz

Download URL cstow-1.0.0.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a3d1ba4aed3c5fe884181815437a28a2371163013fe4d364b012a1622075dbee
BLAKE2b-256 checksum
How to use checksums
af3f65ab0360027163ea048e1af706c6c22c6fee72ca8191b510b6c2f46fd068
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.4 Linux/5.15.0-1041-azure

Release files / cstow-1.0.0-py3-none-any.whl

Download URL cstow-1.0.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc2c92ea3252ee2fae57c46323f2def1985958b8c027aa380e3c349b132a75c5
BLAKE2b-256 checksum
How to use checksums
2832fac4595d2414999ff7260a38d6a0f12242a7a7095b282d5de87af0684208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.4 Linux/5.15.0-1041-azure

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page