Skip to content

Commit cb698a8

Browse files
authored
Merge pull request #20 from picostack/rebrand
rebrand from wadsworth to picobot
2 parents 610b1fc + 7536bf7 commit cb698a8

File tree

15 files changed

+72
-67
lines changed

15 files changed

+72
-67
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
.env
2020

2121
# The binary
22-
wadsworth
22+
picobot
2323
dist
2424
.env
2525
cache

.goreleaser.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
project_name: wadsworth
1+
project_name: picobot
22
builds:
33
- env:
44
- CGO_ENABLED=0
@@ -22,13 +22,13 @@ changelog:
2222
- "^test:"
2323
dockers:
2424
- image_templates:
25-
- southclaws/wadsworth:{{ .Tag }}
26-
- southclaws/wadsworth:v{{ .Major }}
27-
- southclaws/wadsworth:v{{ .Major }}.{{ .Minor }}
28-
- southclaws/wadsworth:latest
25+
- picostack/picobot:{{ .Tag }}
26+
- picostack/picobot:v{{ .Major }}
27+
- picostack/picobot:v{{ .Major }}.{{ .Minor }}
28+
- picostack/picobot:latest
2929
nfpms:
3030
- vendor: Southclaws
31-
homepage: https://github.com/Southclaws/wadsworth
31+
homepage: https://github.com/picostack/picobot
3232
maintainer: Southclaws <hello@southcla.ws>
3333
description: |
3434
A docker-compose application manager that deploys and maintains a set of

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
FROM docker/compose
2-
COPY wadsworth /bin/wadsworth
3-
ENTRYPOINT ["wadsworth"]
2+
COPY picobot /bin/picobot
3+
ENTRYPOINT ["picobot"]

README.md

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# Wadsworth
1+
# Picobot
22

3-
_The [Mister Handy robot][wadsworth] of automation!_
3+
_The little git robot of automation!_
44

5-
[![Build Status](https://travis-ci.org/Southclaws/wadsworth.svg?branch=master)](https://travis-ci.org/Southclaws/wadsworth)
5+
[![Build Status](https://travis-ci.org/picostack/picobot.svg?branch=master)](https://travis-ci.org/picostack/picobot)
66

7-
Wadsworth is a git-driven task runner to automate the application of configs.
7+
Picobot is a git-driven task runner to automate the application of configs.
88

99
## Overview
1010

11-
Wadsworth is a little tool for implementing [Git-Ops][git-ops] in single-server environments. It's analogous to
11+
Picobot is a little tool for implementing [Git-Ops][git-ops] in single-server environments. It's analogous to
1212
[kube-applier][kube-applier], [Terraform][terraform], [Ansible][ansible] but for automating lone servers that do not
1313
need cluster-level orchestration.
1414

15-
Instead, Wadsworth aims to be extremely simple. You give it some Git repositories and tell it to run commands when those
15+
Instead, Picobot aims to be extremely simple. You give it some Git repositories and tell it to run commands when those
1616
Git repositories receive commits and that's about it. It also provides a way of safely passing in credentials from
1717
[Hashicorp's Vault][vault].
1818

@@ -21,16 +21,16 @@ Git repositories receive commits and that's about it. It also provides a way of
2121
### Linux
2222

2323
```sh
24-
curl -s https://raw.githubusercontent.com/Southclaws/wadsworth/master/install.sh | bash
24+
curl -s https://raw.githubusercontent.com/picostack/picobot/master/install.sh | bash
2525
```
2626

2727
Or via Docker:
2828

2929
```sh
30-
docker pull southclaws/wadsworth:v1
30+
docker pull picostack/picobot:v1
3131
```
3232

33-
See the docker section below and the image on [Docker Hub](https://hub.docker.com/r/southclaws/wadsworth).
33+
See the docker section below and the image on [Docker Hub](https://hub.docker.com/r/picostack/picobot).
3434

3535
### Everything Else
3636

@@ -39,22 +39,22 @@ Windows/Mac usage is probably just local testing so just use `go get` for these
3939

4040
## Usage
4141

42-
Currently, Wadsworth has a single command: `run` and it takes a single parameter: a Git URL. This Git URL defines the
43-
"Config Repo" which contains Wadsworth configuration files. These configuration files declare where Wadsworth can find
44-
"Target Repos" which are the repos that contain all the stuff you want to automate. The reason Wadsworth is designed
45-
this way instead of just using the target repos to define what Wadsworth should do is 1. to consolidate Wadsworth config
42+
Currently, Picobot has a single command: `run` and it takes a single parameter: a Git URL. This Git URL defines the
43+
"Config Repo" which contains Picobot configuration files. These configuration files declare where Picobot can find
44+
"Target Repos" which are the repos that contain all the stuff you want to automate. The reason Picobot is designed
45+
this way instead of just using the target repos to define what Picobot should do is 1. to consolidate Picobot config
4646
into one place, 2. separate the config of the tools from the applications and 3. keep your target repos clean.
4747

48-
Wadsworth also has a Docker image - see below for docker-specific information.
48+
Picobot also has a Docker image - see below for docker-specific information.
4949

5050
### Configuration
5151

52-
The precursor to Wadsworth used JSON for configuration, this was fine for simple tasks but the ability to provide a
52+
The precursor to Picobot used JSON for configuration, this was fine for simple tasks but the ability to provide a
5353
little bit of logic and variables for repetitive configurations is very helpful. Inspired by [StackExchange's
54-
dnscontrol][dnscontrol], Wadsworth uses JavaScript files as configuration. This provides a JSON-like environment with
54+
dnscontrol][dnscontrol], Picobot uses JavaScript files as configuration. This provides a JSON-like environment with
5555
the added benefit of conditional logic.
5656

57-
Here's a simple example of a configuration that should exist in the Wadsworth config repo that re-deploys a Docker
57+
Here's a simple example of a configuration that should exist in the Picobot config repo that re-deploys a Docker
5858
Compose stack whenever it changes:
5959

6060
```js
@@ -71,7 +71,7 @@ T({
7171

7272
The `T` function declares a "Target" which is essentially a Git repository. In this example, the repository
7373
`git@github.com:username/my-docker-compose-project` would contain a `docker-compose.yml` file for some application
74-
stack. Every time you make a change to this file and push it, Wadsworth will pull the new version and run the command
74+
stack. Every time you make a change to this file and push it, Picobot will pull the new version and run the command
7575
defined in the `up` attribute of the target, which is `docker-compose up -d`.
7676

7777
You can put as many target declarations as you want in the config file, and as many config files as you want in the
@@ -129,35 +129,27 @@ This would pass the environment variable `MOUNT_POINT=/data` to the `docker-comp
129129
have a bunch of compose configs that all mount data to some path on the machine, you then use
130130
`${MOUNT_POINT}/postgres:/var/lib/postgres/data` as a volume declaration in your `docker-compose.yml`.
131131

132-
[wadsworth]: https://i.imgur.com/RCYbkiq.png
133-
[git-ops]: https://www.weave.works/blog/gitops-operations-by-pull-request
134-
[kube-applier]: https://github.com/box/kube-applier
135-
[terraform]: https://terraform.io
136-
[ansible]: https://ansible.com
137-
[vault]: https://vaultproject.io
138-
[dnscontrol]: https://stackexchange.github.io/dnscontrol/
139-
140132
## Usage as a Docker Container
141133

142134
See the `docker-compose.yml` file for an example and read below for details.
143135

144-
You can run Wadsworth as a Docker container. If you're using it to deploy Docker containers via compose, this makes the
145-
most sense. This is quite simple and is best done by writing a Docker Compose configuration for Wadsworth in order to
136+
You can run Picobot as a Docker container. If you're using it to deploy Docker containers via compose, this makes the
137+
most sense. This is quite simple and is best done by writing a Docker Compose configuration for Picobot in order to
146138
bootstrap your deployment.
147139

148-
The Wadsworth image is built on the `docker/compose` image, since most use-cases will use Docker or Compose to deploy
140+
The Picobot image is built on the `docker/compose` image, since most use-cases will use Docker or Compose to deploy
149141
services. This means you must mount the Docker API socket into the container, just like Portainer or cAdvisor or any of
150142
the other Docker tools that also run inside a container.
151143

152144
The socket is located by default at `/var/run/docker.sock` and the `docker/compose` image expects this path too, so you
153145
just need to add a volume mount to your compose that specifies `/var/run/docker.sock:/var/run/docker.sock`.
154146

155-
Another minor detail you should know is that Wadsworth exposes a `HOSTNAME` variable for the configuration script.
147+
Another minor detail you should know is that Picobot exposes a `HOSTNAME` variable for the configuration script.
156148
However, when in a container, this hostname is a randomised string such as `b50fa67783ad`. This means, if your
157-
configuration performs checks such as `if (HOSTNAME === 'server031')`, this won't work. To resolve this, Wadsworth will
149+
configuration performs checks such as `if (HOSTNAME === 'server031')`, this won't work. To resolve this, Picobot will
158150
attempt to read the environment variable `HOSTNAME` and use that instead of using `/etc/hostname`.
159151

160-
This means, you can bootstrap a Wadsworth deployment with only two variables:
152+
This means, you can bootstrap a Picobot deployment with only two variables:
161153

162154
```env
163155
VAULT_TOKEN=abcxyz
@@ -166,7 +158,7 @@ HOSTNAME=server012
166158

167159
### Docker Compose and `./` in Container Volume Mounts
168160

169-
Another caveat to running Wadsworth in a container to execute `docker-compose` is the container filesystem will not
161+
Another caveat to running Picobot in a container to execute `docker-compose` is the container filesystem will not
170162
match the host filesystem paths.
171163

172164
If you mount directories from your repository - a common strategy for versioning configuration - `./` will be expanded
@@ -177,3 +169,13 @@ The solution to this is both `DIRECTORY: "/cache"` and `/cache:/cache`: as long
177169
exists on the host, Docker compose will expand `./` to the same path as the host and everything will work fine.
178170

179171
This also means your config and target configurations will be persisted on the host's filesystem.
172+
173+
<!-- Links -->
174+
175+
[wadsworth]: https://i.imgur.com/RCYbkiq.png
176+
[git-ops]: https://www.weave.works/blog/gitops-operations-by-pull-request
177+
[kube-applier]: https://github.com/box/kube-applier
178+
[terraform]: https://terraform.io
179+
[ansible]: https://ansible.com
180+
[vault]: https://vaultproject.io
181+
[dnscontrol]: https://stackexchange.github.io/dnscontrol/

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version: 3
22
services:
3-
image: southclaws/wadsworth:v1
3+
image: picostack/picobot:v1
44
environment:
55
HOSTNAME: ${HOSTNAME}
66
DEBUG: "1"

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module github.com/Southclaws/wadsworth
1+
module github.com/picostack/picobot
22

33
go 1.13
44

go.sum

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng
2929
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
3030
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
3131
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
32+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
3233
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3334
github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=
3435
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
@@ -139,6 +140,7 @@ github.com/pierrec/lz4 v2.4.1+incompatible h1:mFe7ttWaflA46Mhqh+jUfjp2qTbPYxLB2/
139140
github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
140141
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
141142
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
143+
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
142144
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
143145
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
144146
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -168,6 +170,7 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH
168170
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
169171
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
170172
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
173+
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
171174
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
172175
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
173176
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=

install.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ set -e
66
usage() {
77
this=$1
88
cat <<EOF
9-
$this: download go binaries for Southclaws/wadsworth
9+
$this: download go binaries for picostack/picobot
1010
1111
Usage: $this [-b] bindir [-d] [tag]
1212
-b sets bindir or installation directory, Defaults to ./bin
1313
-d turns on debug logging
1414
[tag] is a tag from
15-
https://github.com/Southclaws/wadsworth/releases
15+
https://github.com/picostack/picobot/releases
1616
If tag is missing, then the latest will be used.
1717
1818
Generated by godownloader
@@ -51,7 +51,7 @@ execute() {
5151
srcdir="${tmpdir}"
5252
(cd "${tmpdir}" && untar "${TARBALL}")
5353
test ! -d "${BINDIR}" && install -d "${BINDIR}"
54-
for binexe in "wadsworth" ; do
54+
for binexe in "picobot" ; do
5555
if [ "$OS" = "windows" ]; then
5656
binexe="${binexe}.exe"
5757
fi
@@ -344,10 +344,10 @@ End of functions from https://github.com/client9/shlib
344344
------------------------------------------------------------------------
345345
EOF
346346

347-
PROJECT_NAME="wadsworth"
348-
OWNER=Southclaws
349-
REPO="wadsworth"
350-
BINARY=wadsworth
347+
PROJECT_NAME="picobot"
348+
OWNER=picostack
349+
REPO="picobot"
350+
BINARY=picobot
351351
FORMAT=tar.gz
352352
OS=$(uname_os)
353353
ARCH=$(uname_arch)

main.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
"go.uber.org/zap"
1414
"go.uber.org/zap/zapcore"
1515

16-
"github.com/Southclaws/wadsworth/service"
16+
"github.com/picostack/picobot/service"
1717
)
1818

1919
var version = "master"
@@ -41,21 +41,21 @@ func init() {
4141
func main() {
4242
app := cli.NewApp()
4343

44-
app.Name = "wadsworth"
44+
app.Name = "picobot"
4545
app.Usage = "A git-driven task automation butler."
46-
app.UsageText = `wadsworth [flags] [command]`
46+
app.UsageText = `picobot [flags] [command]`
4747
app.Version = version
48-
app.Description = `Wadsworth is a git-driven task runner to automate the application of configs.`
48+
app.Description = `Picobot is a git-driven task runner to automate the application of configs.`
4949
app.Author = "Southclaws"
5050
app.Email = "hello@southcla.ws"
5151

5252
app.Commands = []cli.Command{
5353
{
5454
Name: "run",
5555
Aliases: []string{"r"},
56-
Description: `Starts the Wadsworth daemon with the specified target repository. This
57-
repository should contain one or more configuration files for Wadsworth. When
58-
this repository has new commits, Wadsworth will automatically reconfigure.`,
56+
Description: `Starts the Picobot daemon with the specified target repository. This
57+
repository should contain one or more configuration files for Picobot. When
58+
this repository has new commits, Picobot will automatically reconfigure.`,
5959
Usage: "argument `target` specifies Git repository for configuration.",
6060
ArgsUsage: "target",
6161
Flags: []cli.Flag{

service/config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/pkg/errors"
1111
"github.com/robertkrimen/otto"
1212

13-
"github.com/Southclaws/wadsworth/service/task"
13+
"github.com/picostack/picobot/service/task"
1414
)
1515

1616
// State represents a desired system state

0 commit comments

Comments
 (0)