softwares

I write software for a living, this is my repository of personal works.


xpm

x package manager

A sh script to provide a generic interface to whatever package manager your system uses.

The goal of this project is to avoid the requirement for doing the mental check required when interfacing with your systems package manager, useful if you hop between systems frequently.

install

install /softwares/xpm/xpm.sh [INSTALL DIR]/xpm

INSTALL DIR can be any directory in your $PATH...

read 'xpm'

catrm

A binutil that prompts the option to cat a file to stdout before removing it.

You could just create an alias/sh script for this but I felt like writing some C.

options

-ni = none-interactive mode, skip prompt - just cat & rm

  • gearsix

read 'catrm'

dati

DATI

data and template interface

dati provides a unified interface for parsing data and templates. Ideally it will support all data and template languages, if it doesn't support one you want submit a PR or contact the developer.

It can be used as a Golang library or an executable tool, although it was built as a library first but works well in both forms.

dati library

The library is incredibly u...

read 'dati'

cmd

DATI

dati [OPTIONS]

DATA

Data is a file written in any data language (e.g. JSON or YAML), a list of supported languages can be seen in the README for the dati library. These files provide key=value data.

dati generates a single data structure of all data contained within parsed data files. This super-structure is passed to each "root" template, where value data is accessed using the key ...

read 'cmd'

dotfm

NAME
  dotfm - a simple script to manage dotfiles.

SYNOPSIS
  dotfm [-h] [-d] [-v] [-q] COMMAND DOTFILE...

DESCRIPTION
  dotfm is designed to be simple and easy to use. It's really just a
  short-hand for managing symlinks of dotfiles (it's also helpful if
  you don't want to remember or type out the location of a dotfile
  everytime you want to modify it).

ARGUMENTS
  -h --help	Displays help printout
  -s --skip	Skip prompts where necessary and just use defaults
  -d --debug	Display deb...

read 'dotfm'

gearsix.net

This website is mostly stuff I'm interested in and work I've produced that I'd like to share.
There are a few subdomains as well (like my source code repository).

There's not much to say, since it's all available to see here. If you're curious how I built it, see mwim - this is the tool I built to build the website, you can see the source for the site here

To see upd...

read 'gearsix.net'

goldmark-mmd


Problem: In some parsers this will be rendered. Solution: mmd

mmd

Fork of the goldmark-meta extension for goldmark, both by yuin.

This extension provides parsing of metadata in markdown using a different syntax than most to avoid the metadata being improperly parsed by any markdown renderer that ...

read 'goldmark-mmd'

idx

idx.h is a small C library that provides a standard interface to the (non-standard) 64-bit system-alternatives of the standard library file indexing functions: fseek and ftell. These alternatives are required if you want to index a file that's potentially larger than 2GB (32-bits).

Background

This library exists because the standard library functions fseek and ftell are limited to using ...

read 'idx'

libdati

data and template interface

dati provides a unified interface for parsing data and templates. Ideally it will support all data and template languages, if it doesn't support one you want submit a PR or contact the developer. I've tried to make it easy to add support for new languages (provided a library to do the hard-work already exists).

It can be used as a Golang library or an executable tool, although it was built as a library first...

read 'libdati'

dati

dati [OPTIONS]

A tool for parsing data files, template files and executing them against eachother.

DATA

Data is a file written in any data language (e.g. JSON or YAML), a list of supported languages can be seen in the README for the dati library. These files provide key=value data.

dati generates a single data structure of all data contained within parsed data files. This super-structure is passed to each "root" temp...

read 'dati'

scripts

overview

A collection of personal scripts I use.

I use most of these scripts for convenience and to save on typing.

More recently I've been making an effort to learn PowerShell as I tend to use windows a fair bit too, so there are a few one-off scripts used for that too.

  • nix/ - Scripts for POSIX (Unix, MacOS, Linux, etc) machines. Mostly written in sh and bash.
  • win/ - Scripts...

read 'scripts'

tralloc

An C libray for tracking the size of heap-allocated memory blocks.

This is more of a proof-of-concept than anything and I wouldn't recommend using it in production. There's an accompanying article here: Tracking Allocations in C

Overview

This library provides several functions that act as wrappers around the stdlib memory allocation functions to provide information on the number of heap...

read 'tralloc'