Dear All

During this week I have been repeatedly hitting a wall of incompetence until I 
figured
out how to automate deployment of a Jekyll website with a customized theme. I 
want
to share my experience with the future users of Jekyll in Guix, so below I paste
the English translation of my journal entry on this topic.

In return I would like to ask, how should I go about making the `#!/bin/bash` 
line
of the bash script dynamic and responsive to the updates of Bash in Guix?

# The Journal Entry

The main complication of deploying *Jekyll* in *Guix* is the isolation of 
dependencies.
This leads to situations where, despite theoretical installation of the 
required libraries,
the deployment program reports that they are missing. After days of 
experimentation,
I discovered that these dependencies cannot be installed **alongside** *Jekyll* 
— they
must be specified as *Jekyll* **dependencies**. This means that if a *Jekyll* 
theme
is used, the *Jekyll* package must be modified and this modified variant must 
be used
by *Guix* shells and by systems that automate deployment of website changes.

## The result

After understanding the above problem, I was able to prepare an initial version 
of
the *post-receive* hook in *git*. In addition to the hook itself, I also need 
to develop
a proper structure linking the accounts of the users involved in building and 
hosting
the website, the storage location of the hosted website and their mutual 
authorisations.

### The *post-receive* hook

```bash
#!/gnu/store/cdwviyfnsfv7k57qrwmym0mrynjixc1i-bash-5.1.16/bin/bash

export JEKYLL_ENV=production
export JEKYLL_NO_BUNDLER_REQUIRE=true
export PUBLIC_WWW=/home/marek/Publiczne/www
export TMP_GIT_CLONE=$HOME/tmp/marekpasnikowski-jekyll

git clone $GIT_DIR $TMP_GIT_CLONE
jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW

rm -Rf $TMP_GIT_CLONE
exit
```

### Problems of this implementation:

1. Hard-coded path value to the bash shell executable.
2. Uncertainty whether all necessary environment variables are included.

-----

Guix Community Member
Marek Pasnikowski




Reply via email to