geck

command module
v0.0.0-...-2f0b53d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2021 License: Apache-2.0 Imports: 1 Imported by: 0

README

GECK

Elevator Pitch

A dotfile manager that tracks changes to local files and other resources that you care about and keeps them in sync with a remote repo. If you need to nuke your distro, geck will restore the dotfiles that you told it to care about from the remote repo afterwards.

Basically a barebones Ansible with the following differences:

It only configures the host that it is installed on. No ssh, no agents.

It configures itself based on the resources that you ask it to track, instead of you writing yaml that gets deployed. For workstations and dev machines, this simplifies the configuration process. You just configure your workstation as you would normally, tell it which files and resources are important, and it does the rest.

Because you should never have to manually edit the geck repo, it is encrypted using pbkdf2 by default using a password that you specify.

Envisioned usage:

Repository Management
geck init ~/geck/ 
geck clone ~/geck/ https://github.com/foo/bar

geck init creates a new local geck repo. If the specified directory does not exist, it will be created. If the specified directory exists and is not empty, geck will refuse to use it.

geck clone will create a new local repo by cloning the specified upstream.

Resource Management
geck file|user|group|plugin|<plugin> add|remove
geck file add ~/.zshrc

Geck adds the given file to a list of files, which it syncs from your system to a specified git repo. Geck tracks the contents, mode and ownership of the file.

geck user add foo

Geck adds the given user to a list of users, which it syncs from /etc/passwd and /etc/shadow. It tracks the name, gecos, uid, gid and other state of the user.

geck group add bar

Geck adds the given group to a list of groups, which it syncs from /etc/group.

Deployment
geck read|write|log|show
geck read

Geck iterates through the resources it was told to care about and ensures that it's repo is up to date with what is currently on the system

geck write

Geck deploys the resources it knows about to your system.

Useful Resources

Documentation

Overview

Copyright © 2021 Sas Swart sasswartcdk@protonmail.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL