Update README
This commit is contained in:
parent
0e2582fa5e
commit
0066db5487
40
README.md
40
README.md
@ -1,4 +1,4 @@
|
|||||||
# Homemaker #
|
# Homemaker
|
||||||
|
|
||||||
Homemaker is a lightweight tool for straightforward and efficient management of \*nix configuration files found in the
|
Homemaker is a lightweight tool for straightforward and efficient management of \*nix configuration files found in the
|
||||||
user's home directory, commonly known as dot-files. It can also be readily used for general purpose system
|
user's home directory, commonly known as dot-files. It can also be readily used for general purpose system
|
||||||
@ -9,19 +9,19 @@ configuring a new system for use.
|
|||||||
|
|
||||||
![](https://foosoft.net/projects/homemaker/img/demo.gif)
|
![](https://foosoft.net/projects/homemaker/img/demo.gif)
|
||||||
|
|
||||||
## Table of Contents ##
|
## Table of Contents
|
||||||
|
|
||||||
* [Motivation](https://foosoft.net/projects/homemaker/#motivation)
|
* [Motivation](#motivation)
|
||||||
* [Installation](https://foosoft.net/projects/homemaker/#installation)
|
* [Installation](#installation)
|
||||||
* [Configuration](https://foosoft.net/projects/homemaker/#configuration)
|
* [Configuration](#configuration)
|
||||||
* [Environment Variables](https://foosoft.net/projects/homemaker/#environment-variables)
|
* [Environment Variables](#environment-variables)
|
||||||
* [Command Macros](https://foosoft.net/projects/homemaker/#command-macros)
|
* [Command Macros](#command-macros)
|
||||||
* [Task and Macro Variants](https://foosoft.net/projects/homemaker/#task-and-macro-variants)
|
* [Task and Macro Variants](#task-and-macro-variants)
|
||||||
* [Conditional Execution](https://foosoft.net/projects/homemaker/#conditional-execution)
|
* [Conditional Execution](#conditional-execution)
|
||||||
* [Usage](https://foosoft.net/projects/homemaker/#usage)
|
* [Usage](#usage)
|
||||||
* [Sample](https://foosoft.net/projects/homemaker/#sample)
|
* [Sample](#sample)
|
||||||
|
|
||||||
## Motivation ##
|
## Motivation
|
||||||
|
|
||||||
Ever since switching to using Linux as my daily driver operating system, I have been searching for a way to effectively
|
Ever since switching to using Linux as my daily driver operating system, I have been searching for a way to effectively
|
||||||
manage settings between different computers (and system reinstalls on the same machine) while avoiding the accumulation
|
manage settings between different computers (and system reinstalls on the same machine) while avoiding the accumulation
|
||||||
@ -63,7 +63,7 @@ easy to understand, executables built by the Go compiler are statically linked,
|
|||||||
the binary on your system and you are ready! The result of my work is Homemaker; I hope that you find it suitable for
|
the binary on your system and you are ready! The result of my work is Homemaker; I hope that you find it suitable for
|
||||||
your needs.
|
your needs.
|
||||||
|
|
||||||
## Installation ##
|
## Installation
|
||||||
|
|
||||||
If you already have the Go environment and toolchain set up, you can get the latest version by running:
|
If you already have the Go environment and toolchain set up, you can get the latest version by running:
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ Otherwise, you can use the pre-built binaries for the platforms below:
|
|||||||
* [homemaker\_windows\_386.tar.gz](https://foosoft.net/projects/homemaker/dl/homemaker_windows_386.tar.gz)
|
* [homemaker\_windows\_386.tar.gz](https://foosoft.net/projects/homemaker/dl/homemaker_windows_386.tar.gz)
|
||||||
* [homemaker\_windows\_amd64.tar.gz](https://foosoft.net/projects/homemaker/dl/homemaker_windows_amd64.tar.gz)
|
* [homemaker\_windows\_amd64.tar.gz](https://foosoft.net/projects/homemaker/dl/homemaker_windows_amd64.tar.gz)
|
||||||
|
|
||||||
## Configuration ##
|
## Configuration
|
||||||
|
|
||||||
Configuration files for Homemaker can be authored in your choice of [TOML](https://github.com/toml-lang/toml),
|
Configuration files for Homemaker can be authored in your choice of [TOML](https://github.com/toml-lang/toml),
|
||||||
[JSON](http://json.org/), or [YAML](http://yaml.org/) markup languages. Being the easiest to read out of the three,
|
[JSON](http://json.org/), or [YAML](http://yaml.org/) markup languages. Being the easiest to read out of the three,
|
||||||
@ -277,7 +277,7 @@ itself) in the `links` block; you can read more about how to use environment var
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Environment Variables ###
|
### Environment Variables
|
||||||
|
|
||||||
Homemaker supports the expansion of environment variables for both command and link blocks as well as for dependencies.
|
Homemaker supports the expansion of environment variables for both command and link blocks as well as for dependencies.
|
||||||
This is a good way of avoiding having to hard code absolute paths into your configuration file. To reference an
|
This is a good way of avoiding having to hard code absolute paths into your configuration file. To reference an
|
||||||
@ -321,7 +321,7 @@ It should be pointed out that it is possible to reference other environment vari
|
|||||||
first part of this section. This makes it possible to expand variables like `PATH` without overwriting their existing
|
first part of this section. This makes it possible to expand variables like `PATH` without overwriting their existing
|
||||||
value.
|
value.
|
||||||
|
|
||||||
### Command Macros ###
|
### Command Macros
|
||||||
|
|
||||||
It is often convenient to execute certain commands repeatedly within task blocks to install packages, clone git
|
It is often convenient to execute certain commands repeatedly within task blocks to install packages, clone git
|
||||||
repositories, etc. Homemaker provides macro blocks for this purpose; you can specify a command *prefix* and *suffix*
|
repositories, etc. Homemaker provides macro blocks for this purpose; you can specify a command *prefix* and *suffix*
|
||||||
@ -360,7 +360,7 @@ attempting to clone a repository with it.
|
|||||||
Macros help reduce the clutter that comes from the repeated commands which must be executed to bootstrap a new system.
|
Macros help reduce the clutter that comes from the repeated commands which must be executed to bootstrap a new system.
|
||||||
When executed with the `verbose` option, Homemaker will echo the expanded macro commands before executing them.
|
When executed with the `verbose` option, Homemaker will echo the expanded macro commands before executing them.
|
||||||
|
|
||||||
### Task and Macro Variants ###
|
### Task and Macro Variants
|
||||||
|
|
||||||
If you wish to use this tool in a truly cross-platform and cross-distribution manner without authoring multiple
|
If you wish to use this tool in a truly cross-platform and cross-distribution manner without authoring multiple
|
||||||
configuration files, you will have to provide information to Homemaker about the environment it is running in. Different
|
configuration files, you will have to provide information to Homemaker about the environment it is running in. Different
|
||||||
@ -437,7 +437,7 @@ Although variants are somewhat of an advanced topic as far as Homemaker features
|
|||||||
provide some basic conditional functionality to your configuration file without significantly increasing complexity for
|
provide some basic conditional functionality to your configuration file without significantly increasing complexity for
|
||||||
the user.
|
the user.
|
||||||
|
|
||||||
### Conditional Execution ###
|
### Conditional Execution
|
||||||
|
|
||||||
Homemaker provides a facility for determining whether or not a given task should execute at runtime; this is
|
Homemaker provides a facility for determining whether or not a given task should execute at runtime; this is
|
||||||
accomplished with the `accepts` and `rejects` task variables. Both follow the same syntax as the `cmds` variable and
|
accomplished with the `accepts` and `rejects` task variables. Both follow the same syntax as the `cmds` variable and
|
||||||
@ -466,7 +466,7 @@ correspond to applications installed on the current system.
|
|||||||
The `accepts` variable is the logical opposite of `rejects` and can be used to conditionally execute tasks only when all
|
The `accepts` variable is the logical opposite of `rejects` and can be used to conditionally execute tasks only when all
|
||||||
of the specified commands exit out with a return code of zero.
|
of the specified commands exit out with a return code of zero.
|
||||||
|
|
||||||
## Usage ##
|
## Usage
|
||||||
|
|
||||||
Executing Homemaker with the `-help` command line argument will trigger online help to be displayed. The list below
|
Executing Homemaker with the `-help` command line argument will trigger online help to be displayed. The list below
|
||||||
provides a more detailed description of what the parameters do.
|
provides a more detailed description of what the parameters do.
|
||||||
@ -524,7 +524,7 @@ provides a more detailed description of what the parameters do.
|
|||||||
When something isn't going the way you expect, you can use this parameter to make Homemaker to log everything it is
|
When something isn't going the way you expect, you can use this parameter to make Homemaker to log everything it is
|
||||||
doing to console.
|
doing to console.
|
||||||
|
|
||||||
## Sample ##
|
## Sample
|
||||||
|
|
||||||
Below is a sample configuration file which should help to illustrate how Homemaker can be used in practice.
|
Below is a sample configuration file which should help to illustrate how Homemaker can be used in practice.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user