# | nix-amer | [![Go version](https://img.shields.io/badge/go_version-1.11-blue.svg)](https://golang.org/doc/go1.11) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Go Report Card](https://goreportcard.com/badge/github.com/xdrm-brackets/nix-amer)](https://goreportcard.com/report/github.com/xdrm-brackets/nix-amer) [![Coverage Status](https://coveralls.io/repos/github/xdrm-brackets/nix-amer/badge.svg?branch=meta%2Fcircle-ci)](https://coveralls.io/github/xdrm-brackets/nix-amer?branch=meta%2Fcircle-ci) [![CircleCI Build Status](https://circleci.com/gh/xdrm-brackets/nix-amer.svg?style=shield)](https://circleci.com/gh/xdrm-brackets/nix-amer) [![Go doc](https://godoc.org/github.com/xdrm-brackets/nix-amer?status.svg)](https://godoc.org/github.com/xdrm-brackets/nix-amer) ```yaml name: nix-amer version: 0.1.0 description: Configuration automation tool author: xdrm-brackets ``` >Need to automate the setup of your linux server or desktop ? This tool is made for you. * [I. Commands](#i-commands) + [1) Comments](#1-comments) + [2) package management](#2-package-management) + [3) setup configuration](#3-setup-configuration) + [4) service management](#4-service-management) + [5) aliases](#5-aliases) + [6) custom scripts](#6-custom-scripts) * [II. Path Expressions](#ii-path-expressions) + [File Formats](#file-formats) - [Example](#example) ---- ### I. Commands Your whole setup remains in 1 only build file. Each line contains one instruction, the list of instructions is listed below. #### 1) Comments Each line beginning with one of the following characters : `[`, `#` or `;` is considered a comment and is not interpreted. #### 2) package management These instructions allow you to interact with the package system available on your system. ``` install ``` Install the listed packages. If more than one, use spaces to separate package names. ``` delete ``` Remove the listed packages. If more than one, use spaces to separate package names. #### 3) setup configuration This instruction allow you to set fields of configuration files without the need of an editor and in a developer-readable manner. ``` set ``` Update a configuration file where \ is a dot-separated human-readable [path expression](#ii-path-expressions) and \ is a string or a file. If a string is given, it will override/add the field ; if a file is given the configuration file will be replaced by it. #### 4) service management These instructions allow you to interact with the service system (_cf. [systemd](https://github.com/systemd/systemd)_). ``` service [enable|start|stop|restart|reload] ``` Perform the action on services. If more than one, use spaces to separate service names. #### 5) aliases The file format allows you to create aliases to file paths for more readability in the [path expression](#ii-path-expressions) or with the [`run` command](#6-custom-scripts). ``` alias name /path/to.file ``` Create the alias `name` which resolves to the path `/path/to.file`. > Alias value either for the `set` or `run` command have priority to real file paths. #### 6) custom scripts These instructions allow you to use custom scripts for complex operations. ``` run