The nice thing about Jekyll is it's a satic site generator and works after hours of raging at my machine. The bad thing is it deletes the entire documentroot whenever you generate the site. This means anything not already in the repo doesn't get copied over. There's a lot of large content and stuff I don't want to keep there...mostly because it's a secret. So I sat around and though of the best way to restore all this content. I tried a few bash scripts to symlink, but it failed. So I came up with this:
The nice thing about Jekyll is it's a satic site generator and works after hours of raging at my machine. The bad thing is it deletes the entire documentroot whenever you generate the site. This means anything not already in the repo doesn't get copied over. There's a lot of large content and stuff I don't want to keep there...mostly because it's a secret. So I sat around and though of the best way to restore all this content. I tried a few bash scripts to symlink, but it failed. So I came up with this:
```bash
```bash
# pushd /var/www/pickmystatic
pushd /var/www/pickmystatic
# pax -rwlpp . /var/www/pickmy
pax -rwlpp . /var/www/pickmy
# popd
popd
```
```
<br>
<br>
The problem I was having is if a directory already existed; nothing would symlink. pax solved the problem, except pax copied data. I didn't need the redundancy.
The problem I was having is if a directory already existed; nothing would symlink. pax solved the problem, except pax copied data. I didn't need the redundancy.
I'm getting ready to put another jekyll blog on another domain, so I decided I should fix this once and for all. So here's the new hacky script:
I'm getting ready to put another jekyll blog on another domain, so I decided I should fix this once and for all. So here's the new hacky script:
@ -34,7 +33,6 @@ done
ln -s $WWW_STATIC/* $PUBLIC_WWW/
ln -s $WWW_STATIC/* $PUBLIC_WWW/
```
```
<br>
<br>
This is called as a seperate script in the githook that runs whenever I push a new post (or change) to the repository. It runs after site generation naturally. It gets a list of existing directories from the static directory; and if the directory exists, symlinks all the files in to it. It then goes back and runs a generic symlink of everything.
This is called as a seperate script in the githook that runs whenever I push a new post (or change) to the repository. It runs after site generation naturally. It gets a list of existing directories from the static directory; and if the directory exists, symlinks all the files in to it. It then goes back and runs a generic symlink of everything.
It works well enough, with the cavet that it will generate a "file exists" error. It's non-fatal though.
It works well enough, with the cavet that it will generate a "file exists" error. It's non-fatal though.