Skip to content
This repository has been archived by the owner on Dec 28, 2022. It is now read-only.
/ boss Public archive

git pre-receive hook for use with Dreamhost and Hugo

License

Notifications You must be signed in to change notification settings

bruxisma/boss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

There is no such thing as luck on shared hosting -- The Boss, MGS3 (or, like, whatever)

Boss is a small tool meant to be used as a git pre-receive hook. Specifically, it was created for use with Dreamhost's shared hosting and hugo so that a git push becomes your deploy command.

Installation

Please ensure that hugo is installed and available on your system PATH before installing Boss. Future versions will permit specifying its location via the configuration file, however this initial release expects it to be on the system PATH.If you have not yet setup your bare git repo, perform the following (replace <location> with your own name):

git init --bare <location>.git
go get -u -v -ldflags "-o <location>.git/hooks/pre-receive" github.com/slurps-mad-rips/boss 

If you receive an error regarding "a.out no such file or directory", feel free to ignore it. The executable was placed into the correct location.

Please make sure to add a configuration file with the destination of your site.

Configuration

Place any viper parsable config file at $HOME/.config/boss.<ext>. The configuration has several values for tweaking, however they are rarely needed. The exception here is the destination key. If on Dreamhost, it should be set to $HOME/<website>.<tld>. Boss will handle the rest. Then, perform your typical git push workflow to the Dreamhost server, and watch the output from hugo. The full configuration 'schema' is found below in the yaml format:

destination: REQUIRED # This can use environment variables
# optional flags, defaults displayed
build-cache: $HOME/.cache/hugo
branch: master
clean-destination-dir: true
minify: true
gc: true

Releases

No releases published

Packages

No packages published

Languages