Jonathan Bowman

Tags: commandline

Dotfiles, the Prequel: Easy and Fast

~/.*

In my ongoing quest to explore a variety of ways of managing config files, I believe I have found a way that is attractively simple.

Dotfiles Part 3: A Modular Approach Using Multiple Git Repositories

~/.*

In this article, I offer an approach for managing dotfiles in a modular way. I find a modular approach important because only some config files are useful in all contexts, while others are unique to a specific environment.…

Read Git Default Branch from the Command Line

git logo

On occasion, one needs to know the default branch for a given Git repo. Below I have compiled methods that fit a variety of use cases, and cover specific platforms (Github and Gitlab) as well as methods that work universally regardless of remote platform.

Dotfiles Part 2: A Bare Repo Approach to storing Home Directory Config Files in Git

~/.*

We can make life easier by using Git to store and version configuration files that reside in a system’s home directory (aka “dotfiles”). But how do we do so selectively and non-invasively, so that only the desired files are committed to version control? This article explores one such method: using a “bare” git repo to track the files.

Dotfiles Part 1: A Simple Approach to storing Home Directory Config Files in Git without a Bare Repo

~/.*

Configuration files that reside in your home directory are both precious and dynamic. Given this, storing them in a version control system like Git makes good sense. Due to concerns around complexity, security, and cleanliness, though, no one wants to manage all files in their home directory with version control. Let’s explore how to manage just the important configuration files, also known as “dotfiles”, by selectively committing only the desired files to version control.

Command Line Tools in Python with Typer and pytest: Type Hints Are Useful

With Typer, you can write command line tools in Python, intuitively and easily. At the same time, Typer is flexible enough to handle the complexity thrown at it.

How do I install a Python command line tool or script? (hint: pipx)

Build and Test a Command Line Interface with Poetry, Python's argparse, and pytest

The Python Standard Library’s own argparse package is the officially recommended way to construct a command line interface (CLI) in Python.

Create and Initialize a New GitHub Repository from the Command Line

git logo

I prefer to stay on the command line when creating a new repo, rather than going back and forth between Github’s web interface and the command line. Here are the steps I use when creating a new project.

Chocolatey vs. Scoop vs. Winget: Package Managers for Windows

Collect them all! Install Winget, Chocolatey and Scoop. (I just put the “vs.” in there as clickbait.) They make installing and managing software on Windows so much easier. They are different tools, though, and I suggest that their usage depends on the scenario.