v0.8.3
v0.8.3 main v0.8.5 v0.8.4 v0.8.2 v0.8.1 v0.8.0

Getting Started

Create your first xc file
[edit]
You are looking at the docs for an older version (v0.8.3). The latest version is main.

Installation

Binary

Download the binary from GitHub Releases and add to your $PATH

Go Install
go install github.com/joerdav/xc/cmd/xc@latest
Homebrew
brew tap joerdav/xc
brew install xc
MacPorts
sudo port install xc
tea

With tea just type xc.

$ xc --version
# ^^ or `tea xc` if there’s no magic
Snap
TODO
Nix

There is a nix flake that can be used:

nix develop github:joerdav/xc

Or to create your own xc.nix, replace <version> and add the correct sha256 and vendorSha256 for the version:

{ config, pkgs, fetchFromGitHub, ... }:

let
  xc = pkgs.buildGoModule rec {
    pname = "xc";
    version = "<version>";
    subPackages = ["cmd/xc"];
    src = pkgs.fetchFromGitHub {
      owner = "joerdav";
      repo = "xc";
      rev = version;
      sha256 = "";
    };
    vendorSha256 = "";
  };
in
{
  environment.systemPackages = [ xc ];
}
Scoop
scoop install xc
AUR
TODO

Verify Installation

Run xc -version to verify the installation. If installed via go install the version will be devel.

Install completion

Run xc -complete to install auto completion.

Run xc -uncomplete to uninstall auto completion.

Create some tasks.

Create a file named README.md:

## Tasks
### hello
Prints hello
```sh
echo hello
```
### world
Prints world
Requires: hello
```sh
echo world
```

List tasks.

Run xc to list the tasks.

$ xc
    hello  Prints hello
    world  Prints world
           Requires:  hello

Run a task.

Run xc world to run the world task.

$ xc world
echo hello
hello
echo world
world

Let people know you use xc.

Add the following badge to your README.md so that people know it’s xc compatible.

[![xc compatible](https://xcfile.dev/badge.svg)](https://xcfile.dev)

RTFM!

Now that you have a simple task working, RTFM to learn what else xc is capable of.