About

The bones utility is written in POSIX shell and can clone, update, and install skeletons derived from a git repository. It is inspired by a similar concept from UNIX operating systems — where a skeleton directory can serve as the basis for a new user’s ${HOME} directory.

Roles

User

The following commands are restricted to members of the _bones group.
The commands are delegated to the _bones user via the doas(1) command:

  • bones clone
    Clones into /home/_bones/.local/share/skeletons

  • bones pull
    Pulls updates

  • bones rm
    Removes the skeleton repository

  • bones install
    Installs into a target directory

Configuration

Superuser

After installation is complete the bones environment should be setup.

That includes the creation of the _bones user and group, as well as the creation of /home/_bones. A user should also be added to the _bones group. The process is mostly automated, and the following commands should be run as asuperuser:

  • bones setup
    Creates the _bones user and group

  • bones teardown
    Tears down the _bones user and group

  • pw groupmod _bones -m <user>
    Add a user to the _bones group.

Install

Clone

The first step is to clone the repository.
Afterwards bones can be installed (and deinstalled) through make:

git clone https://github.com/0x1eef/bones
cd bones
doas -u root -- make install
doas -u root -- make deinstall

Sources

License

BSD Zero Clause
See LICENSE