Go to file
2024-01-08 17:44:56 +01:00
cmd removed some debug messages 2024-01-08 17:26:08 +01:00
contrib initial 2023-12-01 23:02:33 +01:00
ent initial 2023-12-01 23:02:33 +01:00
runner restart service after rebuild, fix #1 2024-01-08 17:44:56 +01:00
.gitignore initial 2023-12-01 23:02:33 +01:00
go.mod dep upgrade 2024-01-08 16:57:20 +01:00
go.sum dep upgrade 2024-01-08 16:57:20 +01:00
LICENSE initial 2023-12-01 23:02:33 +01:00
main.go initial 2023-12-01 23:02:33 +01:00
README.md update README.md 2024-01-08 16:55:56 +01:00

gomanager

description

Go Manager is a program that watches your package binaries and if they're not the same version of your installed go version, it rebuilds the packages. By default it is ran every 24 hours. It does not use fnotify or similar. It's a simple tool which checks the current Go version vs the version of the complied binaries.

You MUST be root to run all commands

scenario

You have go projects which you git clone and go build. You can't be arsed to keep the built binaries up to date, manually, every time a new Go version is released. Gomanager does this job for you, periodically.

install

pre-requisites

a functioning build environment

CentOS/RHEL/Rocky/Alma etc

yum groupinstall 'Development Tools'

Debian/Ubuntu

apt install build-essentials

Archlinux

pacman -S base-devel

Default installation procedure

CGO_ENABLED=1 go install code.icod.de/dalu/gomanager@latest
mv ~/go/bin/gomanager /usr/local/bin/
gomanager setup

Default update procedure

CGO_ENABLED=1 go install code.icod.de/dalu/gomanager@latest
mv ~/go/bin/gomanager /usr/local/bin/

usage

all commands can have -h added for a help screen.

add project

gomanager add \
--root-path="" \
--binary-path="" \
--service-name="" \

remove project

Find out the ID of a watched project with gomanager list

gomanager remove --id 1

list projects

gomanager list

show logs of a project

Find out the ID of a watched project with gomanager list

gomanager logs --id 1

start/run

This starts the periodic watcher in the foreground, which runs every 24 hours. It is advised to use a systemd or other init script to run this in the background, supervised.

gomanager start

systemd service

read the contrib directory The runner is ran every 24 hours.

cron job

This runs the watcher every day a 2am

crontab -e
0 2 * * * /usr/local/bin/gomanager cron

systemd timer

see the

  • contrib/gomanager-cron.service
  • contrib/gomanager-cron.timer

copy to /etc/systemd/system/ and

systemctl enable --now gomanager-cron.timer

uninstall

gomanager clean
rm /usr/local/bin/gomanager