Browse Source

Switch to hugo & netlify

Signed-off-by: Amy Aronsohn <WagThatTail@Me.com>
master
Amelia A 4 years ago
parent
commit
1d26022b22
  1. 4
      .gitignore
  2. 6
      .gitmodules
  3. 84
      Makefile
  4. 6
      archetypes/default.md
  5. 55
      config.toml
  6. 9
      content/_template.md
  7. 7
      content/about/_index.html
  8. 0
      content/archives/_index.md
  9. BIN
      content/images/malware/iPhone.png
  10. BIN
      content/images/wallet/Wallet-Comparison.jpg
  11. BIN
      content/images/wallet/Wallet-w-battery.jpg
  12. 62
      content/pages/about.md
  13. 13
      content/pages/contact.md
  14. 7
      content/pages/errors/404.md
  15. 8
      content/pages/errors/50x.md
  16. 11
      content/posts/2012-03-08-old-lj.md
  17. 11
      content/posts/2012-03-08-wow.md
  18. 11
      content/posts/2012-03-14 Nothing For a Reason.md
  19. 9
      content/posts/2012-03-21 Perfect Wallet.md
  20. 10
      content/posts/2012-04-30-Calibre.md
  21. 9
      content/posts/2012-06-19-TestPost.md
  22. 11
      content/posts/2012-06-27-Getting thanks.md
  23. 11
      content/posts/2012-07-06-to Pelican.md
  24. 7
      content/posts/2012-07-17-PrePelican3.md
  25. 12
      content/posts/2012-08-04 BunnyPot Alpha.md
  26. 11
      content/posts/2012-08-29-Git-Fu 1.md
  27. 17
      content/posts/2012-09-07-Fun with Git, Jenkins & Nagios.md
  28. 11
      content/posts/2012-09-11-Git-Fu 2.md
  29. 7
      content/posts/2012-10-30-idascope-winapi-mac.md
  30. 25
      content/posts/2012-11-06 BunnyMailPot.md
  31. 13
      content/posts/2013-02-19-Puppet Config Checks with Jenkins.md
  32. 9
      content/posts/2013-02-25-ssh-on-usb-on-mac.md
  33. 9
      content/posts/2013-02-27-Update-Transmission-Tools.md
  34. 13
      content/posts/2013-03-07-ssh-on-usb-scripts-edition.md
  35. 7
      content/posts/2013-04-11-back-to-vim.md
  36. 3
      content/posts/2014-07-13-update.md
  37. 11
      content/posts/2014-07-14 chef-frustrations.md
  38. 7
      content/posts/2015-04-17-An-open-Year.md
  39. 11
      content/posts/2015-04-24 nagios-chef-run-check.md
  40. 7
      content/posts/2015-09-06-pentoo-grc-atom-note.md
  41. 9
      content/posts/2015-12-30-Being Happy.md
  42. 9
      content/posts/2016-05-02 BaaS Burnout as a a Service.md
  43. 7
      content/posts/2016-08-02-chef-dk-on-freebsd-10.md
  44. 9
      content/posts/2018-06-08-depression-and-anxiety.md
  45. 103
      develop_server.sh
  46. BIN
      extras/apple-touch-icon.png
  47. BIN
      extras/favicon.ico
  48. 54
      extras/keybase.txt
  49. 111
      extras/publickey.asc
  50. 73
      fabfile.py
  51. 7
      layouts/partials/share.html
  52. 4
      netlify.toml
  53. 42
      pelicanconf.py
  54. 25
      publishconf.py
  55. 3
      requirements.txt
  56. 1
      theme/chunk
  57. 1
      themes/whiteplain

4
.gitignore

@ -1,3 +1 @@
output
cache
*.pid
public

6
.gitmodules

@ -1,3 +1,3 @@
[submodule "theme/chunk"]
path = theme/chunk
url = https://github.com/tbunnyman/pelican-chunk.git
[submodule "themes/whiteplain"]
path = themes/whiteplain
url = https://github.com/taikii/whiteplain.git

84
Makefile

@ -1,84 +0,0 @@
PY?=python
PELICAN?=./env/bin/pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
SSH_HOST=bounce.bunni.biz
SSH_PORT=22
SSH_USER=tbunnyman
SSH_TARGET_DIR=www
DEBUG ?= 0
ifeq ($(DEBUG), 1)
PELICANOPTS += -D
endif
help:
@echo 'Makefile for a pelican Web site '
@echo ' '
@echo 'Usage: '
@echo ' make html (re)generate the web site '
@echo ' make clean remove the generated files '
@echo ' make regenerate regenerate files upon modification '
@echo ' make publish generate using production settings '
@echo ' make serve [PORT=8000] serve site at http://localhost:8000'
@echo ' make devserver [PORT=8000] start/restart develop_server.sh '
@echo ' make stopserver stop local server '
@echo ' make ssh_upload upload the web site via SSH '
@echo ' make rsync_upload upload the web site via rsync+ssh '
@echo ' '
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html'
@echo ' '
html:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
cp $(BASEDIR)/extras/* $(OUTPUTDIR)/
clean:
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
regenerate:
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
cp $(BASEDIR)/extras/* $(OUTPUTDIR)/
serve:
ifdef PORT
cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
else
cd $(OUTPUTDIR) && $(PY) -m pelican.server
endif
devserver:
ifdef PORT
$(BASEDIR)/develop_server.sh restart $(PORT)
else
$(BASEDIR)/develop_server.sh restart
endif
stopserver:
kill -9 `cat pelican.pid`
kill -9 `cat srv.pid`
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
envbuild:
git submodule init
git submodule update
test -e env || python3 -m venv env
./env/bin/pip install -r requirements.txt --upgrade
publish: envbuild
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
cp $(BASEDIR)/extras/* $(OUTPUTDIR)/
ssh_upload: publish
scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
rsync_upload: publish
rsync -e "ssh -p $(SSH_PORT)" -rvzci --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
.PHONY: html help clean regenerate serve devserver publish ssh_upload rsync_upload

6
archetypes/default.md

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

55
config.toml

@ -0,0 +1,55 @@
baseURL = "http://bunnyman.info/"
languageCode = "en-us"
theme = "whiteplain"
disqusShortname = "bunnymaninfo"
title = "Dear Squirrels, WTF"
description = "Because Life is too Awesome not to share"
copyright = "&copy; Amy Aronsohn 2012-2018"
footnotereturnlinkcontents = "↩"
ignoreFiles = ["_template.md"]
# This is all displayed on author
[params.author]
name = "Amy Aronsohn"
gravatar = "wagthattail@me.com"
twitter = "OnlyHaveCans"
github = "OnlyHaveCans"
gitlab = "OnlyHaveCans"
telegram = "OnlyHaveCans"
keybase = "OnlyHaveCans"
[taxonomies]
category = "categories"
tag = "tags"
# Header
[[menu.main]]
name = "Categories"
identifier = "categories"
url = "/categories/"
weight = 1
[[menu.main]]
name = "Tags"
identifier = "tags"
url = "/tags/"
weight = 2
[[menu.main]]
name = "Archives"
identifier = "archives"
url = "/archives/"
weight = 3
[[menu.main]]
name = "About"
identifier = "about"
url = "/about/"
weight = 4
# Footer Menu
[[menu.footer]]
name = "About"
weight = 1
identifier = "about"
url = "/about/"

9
content/_template.md

@ -0,0 +1,9 @@
---
date:
title:
slug:
categories: [ramblings]
tags: [stuff]
---
Ys

7
content/about/_index.html

@ -0,0 +1,7 @@
---
title: Because life is too awesome not to share
---
This is a collection of personal writings from 2012 forward.
It's not updated too frequently and contains a mix of quick tech tips, rants, and feelings. I hope it will be useful to you as a reader as much as it is just an outlet for myself.

0
content/archives/_index.md

BIN
content/images/malware/iPhone.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

BIN
content/images/wallet/Wallet-Comparison.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

BIN
content/images/wallet/Wallet-w-battery.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

62
content/pages/about.md

@ -1,62 +0,0 @@
Date: 2015-04-16
Title: About
Tags:
Slug: about
## What is there to know about a bunny… man? ##
I have been a busy skwrl all my life and even now I am far from stopping. I am what I like to call a modern renaissance man. My interests include becoming a better person and learning all that there is to learn about how amazing life can be. As of this writing I am thirty years old and even as I go to list my accomplishments I realize I have so very much more to do!
## In the past I have;
- Graduated High school
- Smoked
- Tried college
- Done Drugs
- Ran my first website from a home server
- Quit Drugs
- Went to over 15 Anime conventions
- Had a Poly Relationship
- Taught myself Perl
- Got a real job
- Start leasing hosting
- Went to over 10 conventions
- Got Promoted to a Desktop Server Admin
- Cut my hippy hair
- Taught Myself Java
- Started the local furry community VegasFurs
- Got promoted to a Unix Server Admin
- Became a recognized Nightclub photographer
- Became a professional Nightclub DJ in Las Vegas
- Wrote an electronic music album
- Worked in to Band promotion photography
- Had my photo's used in professional Band promotions and album art
- Got a remix published on an album
- Lost prior album to corruption.
- Left the local furry community VegasFurs
- Got Promoted to Sr. Server Admin
- Became a real hippy
- Went right back to the local furry community VegasFurs
- Started a 21+ local Furry community Called Blackjack
- Quit Smoking
- Started building electronic kits
- Learned basic C to program Arduinos
- Went to burning Man 4 times in a row
- Photograpphed three weddings and hated every moment of it
- Started a local book club
- Taught Myself Python
- Became a Infrastructure Manager
- Started Writing Fiction
- Finished NaNoWriMo first year
- Studied low level architecture and began reversing crackmes
- Became an lead developer for the [Pelican](http://getpelican.com) project
- Started an organization to manage furry events and conventions in Las Vegas
- Bought my own house
- Attended more furry cons that I can imagine
- Went to Slickdeals.net to be a System Engineer
- Went to Percona Live to get involved in DBA
- Took and graduated from O'Reilly's Database Administration Series
- Got Serious about studying Japanese
- Starting commuting by bicyle full time
- Fell in love with and became entrenched in the Chef community
- Started back into photography with art
- Became a squirrel, how does that even happen?

13
content/pages/contact.md

@ -1,13 +0,0 @@
Date: 2015-04-16
Title: Contact
Tags:
Slug: contact
- @OnlyHaveCans on twitter
- @OnlyHaveCans on Telegram
- onlyhavecans on GitHub
- Wag That Tail At Me... dot com
My PGP/GPG fingerprint is : `E1C0 35C3 A434 909B 8056  2D41 01DC 4C9E A162 B659`
You can also just download it [here](/publickey.asc)

7
content/pages/errors/404.md

@ -1,7 +0,0 @@
Title: 404 Page not found
Slug: 404
status: hidden
# Ooops! #
Page isn't found. I probably lost it around here somewhere.

8
content/pages/errors/50x.md

@ -1,8 +0,0 @@
Title: 50x welp
Slug: 50x
Author:
status: hidden
# I'm kinda impressed #
I don't know how you did it but you pulled a 50x error. This site is all HTML files! How in the hell did you do that? jeebus. Email me and let me know how to did it for bonus points

11
content/news/old lj.md → content/posts/2012-03-08-old-lj.md

@ -1,6 +1,9 @@
Date: 2012-03-08
Title: Things that are not happening for 100, Alex
Slug: things-that-are-not-happening-for-100-alex
---
date: 2012-03-08
title: Things that are not happening for 100, Alex
slug: things-that-are-not-happening-for-100-alex
categories: [news]
---
> A: Importing this content into the new site was attempted only for a few moments before a review of it's nature and amount had it canceled.
@ -9,4 +12,4 @@ Slug: things-that-are-not-happening-for-100-alex
Correct!
Wow. No, not happening. I still have it all backed up but I think all that old content will stay back there. I am currently trying to set this up so I can post my mostly private journal here as well as posting public news and information. LJ will not be getting 100% of the content I post, but it still will get some updates.
The dawn of handpicked RSS content and feeds has consumed community and "friend based" feeds and for the most part I think we are better for it. I'm getting on the ship.
The dawn of handpicked RSS content and feeds has consumed community and "friend based" feeds and for the most part I think we are better for it. I'm getting on the ship.

11
content/news/wow.md → content/posts/2012-03-08-wow.md

@ -1,6 +1,9 @@
Date: 2012-03-08
Title: Wow!
Slug: wow
---
date: 2012-03-08
title: Wow!
slug: wow
categories: [news]
---
Another new site, another clean slate ready to be filled with so much information!
@ -9,4 +12,4 @@ Currently those things are Fiction, Writing, Technology, writing fiction, and Pr
My old site is archived safe and while most of the old links may be gone feel free to check it out. It highlights one of the busiest and most externally exciting period of my life where photography and music production was every facet of my life.
You can also feel free to ask questions if you really care. I don't expect this site to get too much traffic.
You can also feel free to ask questions if you really care. I don't expect this site to get too much traffic.

11
content/ramblings/Nothing For a Reason.md → content/posts/2012-03-14 Nothing For a Reason.md

@ -1,6 +1,9 @@
Date: 2012-03-14
Title: Nothing happens for a reason
Slug: nothing-happens-for-a-reason
---
date: 2012-03-14
title: Nothing happens for a reason
slug: nothing-happens-for-a-reason
categories: [ramblings]
---
**"Everything happens for a reason."** I read this normally innocuous phrase on a friend's blog recently and wanted to toss my coffee mug. The notion of the phrase makes me want to jump out of my chair and flip my keyboard. I'm not going to rag on them for saying or even feeling it, it's simply not my place to tell people how to live their lives, however it bothers me that people who I care about in the world think like that.
@ -14,4 +17,4 @@ I am unwilling to ague the validity of anyone's religious or spiritual beliefs b
[^GOD]: Though my mother often uses the phrase followed with _"God has a plan"_, most of my friends don't seem to subscribe to the hyper religious mentality.
[^STEP]: I didn't enter the initial lotto, instead choosing to hold out for the full price second sales. Only people who entered the lotto for cheaper tickets where given access to STEP, the second chance ticket (re)sale system.
[^STEP]: I didn't enter the initial lotto, instead choosing to hold out for the full price second sales. Only people who entered the lotto for cheaper tickets where given access to STEP, the second chance ticket (re)sale system.

9
content/ramblings/Perfect Wallet.md → content/posts/2012-03-21 Perfect Wallet.md

@ -1,6 +1,9 @@
---
Date: 2012-03-21
Title: The search for the perfect wallet
Slug: the-search-for-the-perfect-wallet
categories: [ramblings]
---
Through my whole life I have always struggled to find the perfect tool for the job. No matter what I am doing I from the big to the little I question methods and tools I am using. Sometimes I find it, sometimes I struggle on and on. This is a story about how I think I found perfection.
@ -8,8 +11,6 @@ I have always had a fascination with wallets. They are where we keep the summary
In my search I have gone through piles of wallets. I still have a small box in my closet that I have been loathe to throw away with then. I have gone from sleek leather, to big woven bulletproof nylon with lots of features, to slim money clips with stamped leather card slots, to the famous minimal [Slimmy](http://www.koyono.com/Slimmy-Slim-Wallet-Alternative-p/m17546.htm). Even with the Slimmy I went through two separate versions, one with window and one without.
<img src="/static/images/wallet/Wallet-Comparison.jpg" alt="Slimmy Vs Band" title="Wallet-Comparison.jpg" border="0" width="224" height="300" style="float:right;" />
My goal was to find a wallet that held everything I need to carry with me while still being small and slim. I have been on the largest minimal kick so the Slimmy and money clips were used for the last three years but they were too minimal for my needs. In the end the fact remains that any wallet I found that is small enough to make me happy didn't hold enough and any wallet with enough space for everything was just too damn big.
The answer to my problem came to me several weeks ago while I was hanging out at a bar with my younger brother. We were about to tip up and I heard a familiar sound, the sound of rubber against the hard plastic of a credit card before snapping into place.
@ -18,8 +19,6 @@ As a child my father never carried a wallet. He always just took his little pock
Like father like son I guess. When I asked my brother about it he said he "got it from dad" and "It was inevitable, you will succumb to it too." It was and I did.
<img src="/static/images/wallet/Wallet-w-battery.jpg" alt="Wallet w/ battery" title="Wallet-w-battery.jpg" border="0" width="224" height="300" style="float:left;" />
In the top most picture I didn't use a normal rubber band but I quickly found that any fancy band I used was too much. Through a few months of testing I found that a traditional rubber band was just enough. In the picture you can easily see that I took the contents of the Slimmy, added my notebook and with the band it is still thinner than the EMPTY Slimmy. Even if I were to add more cards, which I have done, the wallet still manages to be no bigger than the standard four cards and a small amount of cash in a Slimmy that they recommend.[^SLIMMY]
[^SLIMMY]: My problem with the slimy is its design. It is only meant to hold about four cards and a small amount of cash. On any day I need to carry my ID, Work ID, Debit Card, PCard. This means ALL extra credit cards, Costco memberships, health cards, gift cards, and even business cards are out. Yes I can live without them but having to drive home and grab my Costco card or applicable gift card every time I want to grab some shopping on the way home is ANNOYING.
@ -32,4 +31,4 @@ As you can see with the pictures just above the new wallet is just a hair thicke
As for looks? What does this say about me? While as a kid I thought it tacky to have a rubber band for a wallet most people tend to comment on how utilitarian and useful that is. How it holds a notebook and pen in the same space as their own bloated wallets.
No matter how many times I think about the process I think I found the perfect one for the job.
No matter how many times I think about the process I think I found the perfect one for the job.

10
content/code/Calibre.md → content/posts/2012-04-30-Calibre.md

@ -1,6 +1,10 @@
Date: 2012-04-30
Title: My Contribution to Calibre
Slug: my-contribution-to-calibre
---
date: 2012-04-30
title: My Contribution to Calibre
slug: my-controbution-to-calibre
categories: [code]
tags: [python]
---
## Backstory
When I bought my [NOOK Simple Touch™](http://www.barnesandnoble.com/p/nook-simple-touch-barnes-noble/1102344735) in January of this year I rediscovered [calibre E-book management](http://calibre-ebook.com/). While software always felt clunky in Mac OS X you could never deny it's power and sheer amazing once you got past the UI.

9
content/news/TestPost.md → content/posts/2012-06-19-TestPost.md

@ -1,5 +1,8 @@
Date: 2012-06-19
---
date: 2012-06-19
Title: Small Update
Slug: small-update
slug: small-update
categories: [news]
---
I haven’t posted in a while because I am working on redoing this site. Once I am done with the backend I will start updating regularly.
I haven’t posted in a while because I am working on redoing this site. Once I am done with the backend I will start updating regularly.

11
content/code/Getting thanks.md → content/posts/2012-06-27-Getting thanks.md

@ -1,7 +1,10 @@
Date: 2012-06-27 17:37
---
date: 2012-06-27
Title: A little thank you goes a long way
Slug: giving-thanks
Tags: pelican
slug: giving-thanks
categories: [code]
tags: [Pelican]
---
Things like this happen sometimes
@ -20,6 +23,6 @@ Things like this happen sometimes
[4:35 PM] <SnowLprd> Sounds good. Cheers!
[4:36 PM] <tBunnyMan> It does. It's why I love contributing little things to big projects.
All I really was trying to do is add a very quick and simple feature I needed. This was the response I got for it! The thing is, you would be shocked how infrequently I see something like this... It's this type of additude and behavior amongst developers that makes people WANT to work with eachother and help really grow a product.
All I really was trying to do is add a very quick and simple feature I needed. This was the response I got for it! The thing is, you would be shocked how infrequently I see something like this... It's this type of additude and behavior amongst developers that makes people WANT to work with eachother and help really grow a product.
I just wanted to post a little good will and show that some people rule. Expecially SnowLprd, kylef, bbinet, and doubly so alexis!

11
content/news/to Pelican.md → content/posts/2012-07-06-to Pelican.md

@ -1,7 +1,10 @@
Date: 2012-07-06 19:04
Title: Now with less dynamics
Slug: pelican-changeover
tags: Pelican
---
date: 2012-07-06
title: Now with less dynamics
slug: pelican-changeover
categories: [news]
tags: [Pelican]
---
I've been stalling a lot on writing this post. I guess I wanted everything to be perfect by the time I actually wrote about it however my willpower to finish these test cases is weak.

7
content/code/PrePelican3.md → content/posts/2012-07-17-PrePelican3.md

@ -1,7 +1,10 @@
date: 2012-07-17 14:19
---
date: 2012-07-17
title: More Pelican, or how I learned to stop worrying and start developing with others.
slug: pre-pelican-3
tags: Pelican
categories: [code]
tags: [pelican]
---
Pelican 3.0 is almost out the door now. It's been great working on a "real" project with other developers for what is, in retrospect, the first time ever.

12
content/sysadmin/BunnyPot Alpha.md → content/posts/2012-08-04 BunnyPot Alpha.md

@ -1,6 +1,10 @@
date: 2012-08-04 15:20
---
date: 2012-08-04
title: BunnyPot Alpha
slug: bunnypot
slug: bunnypot
categories: [sysadmin]
tags: [malware]
---
Since the beginning of the year I have been mildly obsessed with reversing and malware. Studying ASM and low level debugging is put an awesome edge on my understanding of computer science, programming, and hacking in general.
@ -140,7 +144,7 @@ Setting up dionaea was the **hardest part**!! _Seriously_. The install direction
--with-nl-lib=/opt/dionaea/lib/ \
--with-curl-config=/usr/bin/ \
--with-pcap-include=/opt/dionaea/include \
--with-pcap-lib=/opt/dionaea/lib/
--with-pcap-lib=/opt/dionaea/lib/
make
make install
@ -215,7 +219,7 @@ WHEW! That's a big one huh? That took me several hours to suss out so I figured
--with-nl-lib=/opt/dionaea/lib/ \
--with-curl-config=/usr/bin/ \
--with-pcap-include=/opt/dionaea/include \
--with-pcap-lib=/opt/dionaea/lib/
--with-pcap-lib=/opt/dionaea/lib/
make
make install

11
content/code/Git-Fu 1.md → content/posts/2012-08-29-Git-Fu 1.md

@ -1,7 +1,10 @@
date: 2012-08-29 21:26
---
date: 2012-08-29
title: Honing my Git-Fu Part 1
slug: git-fu-01
tags: git
categories: [code]
tags: [git]
---
## Backstory
@ -20,7 +23,7 @@ SnowLprd wanted me to get some documenting on and take notes on what I find usef
## Starter Commands
I'm not gonna put up how to clone a repo here. SRSLY if you haven't gotten past 101 I'm not going to be useful. This is supposed to be 105b.
git remote set-url origin git@github.com:onlyhavecans/pelican.git
git remote add upstream git://github.com/getpelican/pelican.git
git remote add MyExBF git://github.com/justinmayer/pelican.git
@ -49,4 +52,4 @@ I'm not gonna put up how to clone a repo here. SRSLY if you haven't gotten past
HEAD^
> Now then what's the `^`? Well everyone knows `HEAD` is an alias to the most recent commit. Well you can add the `^` to any repo name and it's now the previous one. So `bad1dea^` means the previous bad idea, while `HEAD^` literally just means the previous commit. What's better is it's stackable `HEAD^^` is two back. Now you probably don't wanna stack 10 `^`'s so just use the shorthand `HEAD~10` for ten revisions back.
> Ahhh? History is a Linked list! so this traverses the linked list and returns all the revisions! Good for putting together a change log. To just see the last two commits `git log HEAD^..HEAD` Yea? Thats the cool stuff.
> Ahhh? History is a Linked list! so this traverses the linked list and returns all the revisions! Good for putting together a change log. To just see the last two commits `git log HEAD^..HEAD` Yea? Thats the cool stuff.

17
content/sysadmin/Fun with Git, Jenkins & Nagios.md → content/posts/2012-09-07-Fun with Git, Jenkins & Nagios.md

@ -1,11 +1,14 @@
date: 2012-09-07 11:04
title: Fun with Git, Jenkins, &amp; Nagios
---
date: 2012-09-07
title: Fun with Git, Jenkins, & Nagios
slug: git-jenkins-nagios
tags: git, jenkins
categories: [sysadmin]
tags: [git, jenkins]
---
Welcome to another edition on how to automate the hell out of your workflow.
## Preface
## Preface
One thing I have been addicted to since I learned it was source control. I don't understand how some developers work without it... and I **really** don't understand how any syadmins live without it. I have actually found it _more_ useful as a sysadmin as a programmer, but only because at my day job I have used it in most of our major configs. Putting our 400+ file bind setup in subversion and using hooks to test and deploy our changes was not only a massive time saver but tail saver as well.
@ -104,7 +107,7 @@ Jenkins; It's just that easy. Now lets set up our tests and deploy!
Technically that is all the Jenkins config we need to have it automatically clone the hub to it's own private repo and then nagios -v to test the config. All typed out it seems like a decent amount of steps but by the time you set up your third Jenkin's test you realize most all of that is boilerplate. Most of the time you spend with Jenkin's is checking to see why your build failed and sometimes tweaking tests for the environment. It's really a get set up and get out of your way kinda tool.
Now BEFORE we move on let's make Jenkin's do a little extra work and deploy from the hub to the live configs if the tests pass... oh crap you clicked save already didn't you... If you did just go back to the project and hit `Configure`.
Now BEFORE we move on let's make Jenkin's do a little extra work and deploy from the hub to the live configs if the tests pass... oh crap you clicked save already didn't you... If you did just go back to the project and hit `Configure`.
Now Under `Build` click `Add Build Step` and add a _second_ `Execute Shell`. Then put the following unto it[^GITPULL]
@ -166,13 +169,13 @@ To explain a few other lines;
cfg_file=objects/timeperiods.cfg
cfg_file=objects/templates.cfg
cfg_dir=systems
This is referring to /usr/local/etc/nagios/objects. I store all the default config files in there, commands, contacts, time periods, ect.. However I choose to put all my actual system, switch, & device configs in `systems`. I store personal templates and copies of all the defaults for reference in `templates` and then when I want to add a new group of systems I just copy a template to `systems` and fill it out. No need to edit the `nagios.cfg` every time.
Here is the layout of my nagios config directory;
:::bash...
$ tree nagios_configs
$ tree nagios_configs
nagios_configs
├── cgi.cfg
├── htpasswd.users

11
content/code/Git-Fu 2.md → content/posts/2012-09-11-Git-Fu 2.md

@ -1,22 +1,23 @@
date: 2012-09-11 15:05
---
date: 2012-09-11
title: Git-Fu Advice
slug: git-fu-02
tags: git
categories: [code]
tags: [git]
---
Now who would have thought, I start blogging about git and people have advice. This post isn't just my personal learning but also some advice I received from others!
git reset HEAD^
> From Alexis: Something I'm doing a lot is when I mess up with git, I sometimes need to uncommit something but keep the changes I had just before the commit.
git add -i
> From Alexis: "Use this…" Brief but powerful advice. I never thought of using the interactive mode personally but if you are doing a complex commit or want to double over your work git's interactive mode is fairly robust.
:::bash...
cd my_git_repo
echo 'git push' > .git/hooks/post-commit
chmod 755 .git/hooks/post-commit
> I mentioned this in an earlier post. This hook trick is for the lazy at heart. This script runs a push after every commit. If you always have access to your origin repo when you are coding, ie like you are a cubicle worker, this might not be too bad. This might get annoying of you are the type of coder that likes to write a lot of little commits on the road and then push in bundles.
git diff --cached [--ext-diff]
git diff --cached [--ext-diff]
> As mentioned in my last post I'm big for double-checking my commits before go. This long command (that deserves an alias) pops open a diff of everything in your index ready to commit. Always a quick check before proceed!

7
content/sysadmin/idascope-winapi-mac.md → content/posts/2012-10-30-idascope-winapi-mac.md

@ -1,7 +1,10 @@
date: 2012-10-30 19:29
---
date: 2012-10-30
title: simpliFiRE.IDAscope API browsing on a Mac
slug: idascope-winapi-browsing-on-a-mac
tags: ida,mac
categories: [sysadmin]
tags: [ida, mac]
---
I know this isn't the most revolutionary tip ever but my google searches pulled up nada when I tried to figure this out. I'm an IDA Pro MAC user. Bastard child of IDA right? Not really, except for plugins usually which is the point of this short tips post.

25
content/sysadmin/BunnyMailPot.md → content/posts/2012-11-06 BunnyMailPot.md

@ -1,7 +1,10 @@
date: 2012-11-06 15:16
title: BunMailPot Alpha…
---
date: 2012-11-06
title: "BunMailPot Alpha..."
slug: bunny-mail-honeypot-alpha
tags: mac, malware
categories: [sysadmin]
tags: [mac, malware]
---
Ok… so that is not the best name I've every come up with. Sorry, but whatever. This is a quick but fun one.
@ -30,10 +33,10 @@ WHAT'S IN THE SCRIPT?! WHAT'S IN THE SCRIPT!!!!!!!
:::AppleScript
on perform_mail_action(ruleData)
-- The folder to save the attachments in (must already exist)
set attachmentsFolder to ((path to home folder as text) & "Downloads") as text
-- Save in a sub-folder based on the name of the rule in Mail
set subFolder to name of |Rule| of ruleData as text
tell application "Finder"
@ -41,16 +44,16 @@ WHAT'S IN THE SCRIPT?! WHAT'S IN THE SCRIPT!!!!!!!
make new folder at attachmentsFolder with properties {name:subFolder}
end if
end tell
-- Get incoming messages that match the rule
tell application "Mail"
set selectedMessages to |SelectedMessages| of ruleData
repeat with theMessage in selectedMessages
-- Get the date the message was sent
set {year:y, month:m, day:d, hours:h, minutes:min} to theMessage's date sent
set timeStamp to ("" & y & "-" & my pad(m as integer) & "-" & my pad(d) & "-" & my pad(h) & "-" & my pad(min))
-- Save the attachment
repeat with theAttachment in theMessage's mail attachments
set originalName to name of theAttachment
@ -61,7 +64,7 @@ WHAT'S IN THE SCRIPT?! WHAT'S IN THE SCRIPT!!!!!!!
end repeat
end repeat
end tell
end perform_mail_action
-- Adds leading zeros to date components
@ -81,7 +84,7 @@ Oh and disable Throwing away duplicate files, it might accidentally toss a varia
### Uncompress
> This is too easy
If
- Kind is Archive
@ -111,7 +114,7 @@ Do
curl -sS -F upfile=@"$1" http://your.home.server:9000/cgi-bin/dionaea.py
- Display Growl Notification "New MailMal (file)"
## Notification
Ok, I'm not going to teach you how to set up growl to notify your phone for when you move this to your mac mini server at home, but needless to say [Prowl - iOS Push Notifications](http://prowlapp.com/) is your friend. If you sent up the receiver I talked about in the last bunnypot article then you should already have that dionaea.py already to go!

13
content/sysadmin/Puppet Config Checks with Jenkins.md → content/posts/2013-02-19-Puppet Config Checks with Jenkins.md

@ -1,7 +1,10 @@
date: 2013-02-19 19:32
---
date: 2013-02-19
title: Puppet Configuration Checks with Jenkins
slug: puppet_jenkins
tags: jenkins
slug: puppet-jenkins
categories: [sysadmin]
tags: [jenkins]
---
Ok, so we have all our Nagios configs being sanitized and checked by Jenkins, why not [Puppet: IT Automation Software for System Administrators](https://puppetlabs.com/)? WHY NOT PUPPET!?
@ -15,7 +18,7 @@ Now Puppet is a system that hold dynamically updated configurations of your ever
Ok, now lets start by assuming the following;
1. You are not using anything crazy like githubbing puppet configs nor can you afford github enterprise.
1. You are not using anything crazy like githubbing puppet configs nor can you afford github enterprise.
1. Puppet Master (puppet.domain.ex) runs in DMZ and is locked down tight.
2. _/etc/puppet_ is your config locations on puppet.domain.ex and you have a user that can write to it other than root.
3. Jenkins is hidden away in your network where it belongs, also fairly secured.
@ -131,4 +134,4 @@ The simple fact of the matter is that if you are automatically pushing configs t
2. Much much bigger balls than me
3. Hopefully a whole enterprise security team all over this shit like a hawk.
You _can_ set up an automated push and hope that everything you or anyone else pushes in master is gold but my recommendation is to test in branches, tag, and then have a human eyes verification on the configs before your push to puppet. When you have a bad push to nagios monitoring glitches out. When pupped fucks up... well you are running down a bad road at full speed.
You _can_ set up an automated push and hope that everything you or anyone else pushes in master is gold but my recommendation is to test in branches, tag, and then have a human eyes verification on the configs before your push to puppet. When you have a bad push to nagios monitoring glitches out. When pupped fucks up... well you are running down a bad road at full speed.

9
content/sysadmin/ssh-on-usb-on-mac.md → content/posts/2013-02-25-ssh-on-usb-on-mac.md

@ -1,7 +1,10 @@
date: 2013-02-25 10:39
---
date: 2013-02-25
title: SSH Keys on a USB jump drive on Mac OS X (Mountain Lion Edition)
slug: ssh-on-usb-on-mac-os-x
tags: mac
categories: [sysadmin]
tags: [mac]
---
## Here I address the eternal struggle.
@ -41,7 +44,7 @@ There is no step 4; eject & replug your key to enjoy ssh keys used directly from
- if you wanna be *really* cool then set up your config file on the jump drive as well and then alias keyssh to 'ssh -F /path/to/usb/config' Then that can ALL follow you around, except for on linux since it would mount on media or whatever instead of /Volumes breaking all your paths in the config but then you can just create a symlink anyways and it will work again… or something like that.
- While not the point of this article yet your OpenPGP, GnuPG, GPG whateverPG, etc keys should also be WAY happier now placed on the jump drive. I believe they also hate being world readable.
- While not the point of this article yet your OpenPGP, GnuPG, GPG whateverPG, etc keys should also be WAY happier now placed on the jump drive. I believe they also hate being world readable.
- This may not work in 10.9 or 11 or whatever comes next. The file `/etc/fstab.hd` says this is on the deprecation list. If Apple does break this down the road and you are reading this from the future the trick is to go looking wherever `diskarbitrationd` or it's successor is getting it's settings.

9
content/sysadmin/Update-Transmission-Tools-2013-02-27.md → content/posts/2013-02-27-Update-Transmission-Tools.md

@ -1,7 +1,10 @@
date: 2013-02-27 07:10
title: Update to my Transmission Tools
---
date: 2013-02-27
title: Update to my Transmission Tools
slug: transmission-tools-2013-02-27
tags: python, bittorrent, transmissionbt
categories: [code]
tags: [python, transmissionbt]
---
Nope, not something to help unmount and flush your transmissions, it's some tools for [Transmission](http://www.transmissionbt.com/), specifically MY tools.

13
content/sysadmin/ssh-on-usb-scripts-edition.md → content/posts/2013-03-07-ssh-on-usb-scripts-edition.md

@ -1,7 +1,10 @@
date: 2013-03-07 07:50
---
date: 2013-03-07
title: SSH Keys on a USB jump drive on Mac OS X Part 2
slug: ssh-on-usb-on-mac-os-x-scripts
tags: mac
categories: [sysadmin]
tags: [mac]
---
All right! You read my post [SSH Keys on a USB jump drive on Mac OS X (Mountain Lion Edition)](http://bunnyman.info/posts/2013/Feb/25/ssh-on-usb-on-mac-os-x/) and want to take this to the next level huh? Maybe having your config posting back to a jump drive and having to have it plugged in _every time_ you want to log into something is sooooo lame! You often just leave it there, plugged in when you walk away from your work station. There has to be a better way…
@ -59,7 +62,7 @@ Ok, this is where the gold is. I slaved over a hot mess of applescript to you gu
Maximum lazy engage!
Ok. To start there is no ssh-askpass on Mac OS X Mountain Lion which is fairly un-bro of apple but whatever. I replaced it with an applescript I stole and _slightly_ tweaked to run better.
Ok. To start there is no ssh-askpass on Mac OS X Mountain Lion which is fairly un-bro of apple but whatever. I replaced it with an applescript I stole and _slightly_ tweaked to run better.
Take this, it's dangerous to go alone.
[onlyhavecans/mac-ssh-askpass · GitHub](https://github.com/onlyhavecans/mac-ssh-askpass)
@ -90,13 +93,13 @@ Now break out the applescript editor and take this puppy for a ride.
set end of theKeys to theFile
end if
end repeat
set frontApp to short name of first process whose frontmost is true
tell application frontApp
activate
set theKey to choose from list theKeys with title "Choose your Destiny" with prompt "What Key do you want to activate for " & keyTime default items {first item of theKeys} without empty selection allowed and multiple selections allowed
end tell
do shell script "SSH_ASKPASS=" & askPass & " /usr/bin/ssh-add -t " & keyTime & " \"" & {POSIX path of folder keyFolder} & "/" & theKey & "\""
end tell

7
content/code/back-to-vim.md → content/posts/2013-04-11-back-to-vim.md

@ -1,7 +1,10 @@
date: 2013-04-11 21:53
---
date: 2013-04-11
title: Coming back to vim
slug: back-to-vim
tags: python, vim
categories: [code]
tags: [python, vim]
---
It's time for my monthly or so post! I wanted to go through and post about my OpenBSD firewall I built but that's not 100%. Also I'm not ready to go on about anything amazing with puppet because without my lab being done puppet isn't useful so lets go back to talking about my dev environment!

3
content/ramblings/update-2014.md → content/posts/2014-07-13-update.md

@ -1,6 +1,9 @@
---
date: 2014-07-13
title: Where have you been?
slug: update-2014
categories: [news]
---
Actually I should have called this where have *I* been. This seemed catchier though.

11
content/ramblings/chef-frustrations.md → content/posts/2014-07-14 chef-frustrations.md

@ -1,7 +1,10 @@
date: 2014-07-14 18:24
---
date: 2014-07-14
title: Chef Frustrations
slug: chef-frustrations
tags: chef
categories: [ramblings]
tags: [chef]
---
I've spent the last week working on implementing chef. The experience is frustrating to say the least. Instead of whining I wanted to take the time to write out some of my pain points and hopefully offer some constructive fixes to what I see as the wall in the learning curve.
@ -15,9 +18,9 @@ I really liked the new learn chef. I have to give them a ton of credit for all t
I know that most would feel that statement isn't fair, since it teaches you all about the design and system behind how chef works, and that it does; but it still feels like not enough to be useful and here is why.
## Anti-pattern Two: We Have no Patterns...
## Anti-pattern Two: We Have no Patterns...
Learn Chef teaches you how chef works but not really how to use it at any level of scale; There is no real world usage taught anywhere. It teaches you to set up a Chef Enterprise server and then re-inventing the wheel with a homemade apache or ntp cookbook, and push it all to a vm _but you would rarely do this in practice right?_
Learn Chef teaches you how chef works but not really how to use it at any level of scale; There is no real world usage taught anywhere. It teaches you to set up a Chef Enterprise server and then re-inventing the wheel with a homemade apache or ntp cookbook, and push it all to a vm _but you would rarely do this in practice right?_
When you leave Chef's documentation you learn about many very important Chef Patterns;

7
content/news/An-open-Year.md → content/posts/2015-04-17-An-open-Year.md

@ -1,7 +1,10 @@
date: 2015-04-17 17:15
---
date: 2015-04-17
title: An Open Year
slug: open-year-2015
tags:
categories: [news]
tags: [bsd, chef]
---
It's been about a year since my last post, mostly frustrated with Chef as a beginner. Now I spend most of my day writing cookbooks and recipes. In fact I am even helping the Lead Dev at work learn Chef and got back from Chef conference. There I met a lot of amazing people and even [offered to help maintain BSD support in chef](https://github.com/chef/chef/pull/3231).

11
content/sysadmin/nagios-chef-run-check.md → content/posts/2015-04-24 nagios-chef-run-check.md

@ -1,7 +1,10 @@
date: 2015-04-24 13:52
---
date: 2015-04-24
title: Monitoring Chef runs without Chef
slug: nagios-chef-run-check
tags: nagios, chef
slug: nagios-che-run-check
categories: [sysadmin]
tags: [nagios, chef]
---
I, like many sysadmins, really want to monitor all the things I actually care about. Monitoring is in general *hard*. Not because it’s hard to set up, but it’s hard to get right. It’s really easy to monitor ALL THE THINGS and then just end up with pager fatigue. It’s all about figuring out what you need to know and when you need to know it.
@ -48,7 +51,7 @@ You really only need status for this one. The meat of status is this here, coder
nodes[row.object['machine name']] = datetime.fromtimestamp(row.object['ohai_time'])
### Step three
Now from here I created a TimeChecker object. It takes the dictionary of `{ server: datetimeObj }` on it’s init. For consistency sake I also init `self.now = datetime.now()`. Then I have a `TimeChecker.runs_not_in_the_last()` that just takes an int.
Now from here I created a TimeChecker object. It takes the dictionary of `{ server: datetimeObj }` on it’s init. For consistency sake I also init `self.now = datetime.now()`. Then I have a `TimeChecker.runs_not_in_the_last()` that just takes an int.
The magic of `runs_not_in_the_last` I will also share with you because I’m proud of this damn script and want to share it with the world

7
content/sysadmin/Pentoo-grc-atom-note.md → content/posts/2015-09-06-pentoo-grc-atom-note.md

@ -1,7 +1,10 @@
date: 2015-09-06 15:03
---
date: 2015-09-06
title: Quick Note on GnuRadio on Pentoo
slug: pentoo-grc-atom
tags: grc
categories: [sysadmin]
tags: [grc]
---
Not a big blog, but a quick problem I got solved on IRC that I thought might help others.

9
content/ramblings/Being Happy.md → content/posts/2015-12-30-Being Happy.md

@ -1,6 +1,9 @@
Date: 2015-12-30
Title: Being Happy
Slug: being-happy
---
date: 2015-12-30
title: Being Happy
slug: being-happy
categories: [ramblings]
---
In my personal experience not everyone wants to be happy. When I say that I'm not _talking about that one friend_ either. I'm talking about me. For a very long time I didn't wanna be happy. It was a very frustrating time. I can't say I knew I wanted to be unhappy, I just was all the time. I was angry, depressed, and off and on apathetic. It was actually my mother who coined the phrase _"You just need to be unhappy."_ somewhere in my early to mid 20s.

9
content/ramblings/BaaS Burnout as a a Service.md → content/posts/2016-05-02 BaaS Burnout as a a Service.md

@ -1,6 +1,9 @@
Date: 2016-05-02
Title: BaaS: Burnout as a Service
Slug: baas-burnout-as-a-service
---
date: 2016-05-02
title: "BaaS: Burnout as a Service"
slug: baas-burnout-as-a-service
categories: [ramblings]
---
I wanna take a moment to to address what I like to call **Burnout as a Service; how I see burnout as a product of the tech industry and culture**. My friends, coworkers, and I have all experienced it in various levels, sometimes to crippling physical side effects. In this article I'm going to use strong language like _need_, and _should_, and _I won't work with you if you [don't|do] $thing_. While I have strong opinions about this subject and feel I have developed a powerful framework for helping avoid burnout it’s bound not to be perfect or complete. I do study this subject at great length in the name of personal development and productivity/energy management so if you have thoughts, opinions, feedback, or insights further into this topic I'd be happy to hear about them in the comments.

7
content/sysadmin/chef-dk-on-freebsd-10.md → content/posts/2016-08-02-chef-dk-on-freebsd-10.md

@ -1,7 +1,10 @@
date: 2016-08-02 21:23
---
date: 2016-08-02
title: Building chef-dk on FreeBSD 10
slug: chef-dk-on-freebsd
tags: freebsd chef chef-dk
categories: [sysadmin]
tags: [freebsd, chef, chef-dk]
---
For those that don’t know I’m a Chef for a living. Not the kind that works with food but one that works with code.
What you may not know is I’m a FreeBSD guy, or at least claim to be one.

9
content/ramblings/a_word_on_depression_and_anxiety.md → content/posts/2018-06-08-depression-and-anxiety.md

@ -1,6 +1,9 @@
Date: 2018-06-08
Title: A Word On Depression and Anxiety
Slug: a-word-on-depression-and-anxiety
---
date: 2018-06-08
title: A Word On Depression and Anxiety
slug: a-word-on-depression-and-anxiety
categories: [ramblings]
---
Every day people say horrible things to me, constantly judging me, tearing me down, and invalidating me. Sometimes it's my friends, sometimes it's my family, other times it's just me looking in a mirror.

103
develop_server.sh

@ -1,103 +0,0 @@
#!/usr/bin/env bash
##
# This section should match your Makefile
##
PY=${PY:-python}
PELICAN=${PELICAN:-pelican}
PELICANOPTS=
BASEDIR=$(pwd)
INPUTDIR=$BASEDIR/content
OUTPUTDIR=$BASEDIR/output
CONFFILE=$BASEDIR/pelicanconf.py
###
# Don't change stuff below here unless you are sure
###
SRV_PID=$BASEDIR/srv.pid
PELICAN_PID=$BASEDIR/pelican.pid
function usage(){
echo "usage: $0 (stop) (start) (restart) [port]"
echo "This starts Pelican in debug and reload mode and then launches"
echo "an HTTP server to help site development. It doesn't read"
echo "your Pelican settings, so if you edit any paths in your Makefile"
echo "you will need to edit your settings as well."
exit 3
}
function alive() {
kill -0 $1 >/dev/null 2>&1
}
function shut_down(){
PID=$(cat $SRV_PID)
if [[ $? -eq 0 ]]; then
if alive $PID; then
echo "Stopping HTTP server"
kill $PID
else
echo "Stale PID, deleting"
fi
rm $SRV_PID
else
echo "HTTP server PIDFile not found"
fi
PID=$(cat $PELICAN_PID)
if [[ $? -eq 0 ]]; then
if alive $PID; then
echo "Killing Pelican"
kill $PID
else
echo "Stale PID, deleting"
fi
rm $PELICAN_PID
else
echo "Pelican PIDFile not found"
fi
}
function start_up(){
local port=$1
echo "Starting up Pelican and HTTP server"
shift
$PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
pelican_pid=$!
echo $pelican_pid > $PELICAN_PID
cd $OUTPUTDIR
$PY -m pelican.server $port &
srv_pid=$!
echo $srv_pid > $SRV_PID
cd $BASEDIR
sleep 1
if ! alive $pelican_pid ; then
echo "Pelican didn't start. Is the Pelican package installed?"
return 1
elif ! alive $srv_pid ; then
echo "The HTTP server didn't start. Is there another service using port 8000?"
return 1
fi
echo 'Pelican and HTTP server processes now running in background.'
}
###
# MAIN
###
[[ ($# -eq 0) || ($# -gt 2) ]] && usage
port=''
[[ $# -eq 2 ]] && port=$2
if [[ $1 == "stop" ]]; then
shut_down
elif [[ $1 == "restart" ]]; then
shut_down
start_up $port
elif [[ $1 == "start" ]]; then
if ! start_up $port; then
shut_down
fi
else
usage
fi

BIN
extras/apple-touch-icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

BIN
extras/favicon.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

54
extras/keybase.txt

@ -1,54 +0,0 @@
==================================================================
https://keybase.io/onlyhavecans
--------------------------------------------------------------------
I hereby claim:
* I am an admin of http://bunnyman.info
* I am onlyhavecans (https://keybase.io/onlyhavecans) on keybase.
* I have a public key ASA0j5HXXNFSJiohsLLNefJBhSF4730NFQNNqAZUyra_xAo
To do so, I am signing this object:
{
"body": {
"key": {
"eldest_kid": "0101bd104e7d16be61ae8db848757a662df2334012d609b7e36185d46e0f4e5964400a",
"host": "keybase.io",
"kid": "0120348f91d75cd152262a21b0b2cd79f241852178ef7d0d15034da80654cab6bfc40a",
"uid": "08bd07bcc7c890107c051bfb09ebb219",
"username": "onlyhavecans"
},
"service": {
"hostname": "bunnyman.info",
"protocol": "http:"
},
"type": "web_service_binding",
"version": 1
},
"client": {
"name": "keybase.io go client",
"version": "1.0.15"
},
"ctime": 1463010435,
"expire_in": 504576000,
"merkle_root": {
"ctime": 1463010349,
"hash": "859d591b1a03676ef97addcad691f14b18d34bbbbf61227ce8e3c8cadadbd0918213ae4f1e0f3b0d046ae6eddf97adcf180cca64df96e7d4fae90c15870a6e48",
"seqno": 462027
},
"prev": "2d2147e9974af2c220045bbe97a0c6e0eaad1843bf5e2ecfcafb488e7a9f28f9",
"seqno": 40,
"tag": "signature"
}
which yields the signature:
g6Rib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgNI+R11zRUiYqIbCyzXnyQYUheO99DRUDTagGVMq2v8QKp3BheWxvYWTFAvl7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTAxYmQxMDRlN2QxNmJlNjFhZThkYjg0ODc1N2E2NjJkZjIzMzQwMTJkNjA5YjdlMzYxODVkNDZlMGY0ZTU5NjQ0MDBhIiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwMzQ4ZjkxZDc1Y2QxNTIyNjJhMjFiMGIyY2Q3OWYyNDE4NTIxNzhlZjdkMGQxNTAzNGRhODA2NTRjYWI2YmZjNDBhIiwidWlkIjoiMDhiZDA3YmNjN2M4OTAxMDdjMDUxYmZiMDllYmIyMTkiLCJ1c2VybmFtZSI6Im9ubHloYXZlY2FucyJ9LCJzZXJ2aWNlIjp7Imhvc3RuYW1lIjoiYnVubnltYW4uaW5mbyIsInByb3RvY29sIjoiaHR0cDoifSwidHlwZSI6IndlYl9zZXJ2aWNlX2JpbmRpbmciLCJ2ZXJzaW9uIjoxfSwiY2xpZW50Ijp7Im5hbWUiOiJrZXliYXNlLmlvIGdvIGNsaWVudCIsInZlcnNpb24iOiIxLjAuMTUifSwiY3RpbWUiOjE0NjMwMTA0MzUsImV4cGlyZV9pbiI6NTA0NTc2MDAwLCJtZXJrbGVfcm9vdCI6eyJjdGltZSI6MTQ2MzAxMDM0OSwiaGFzaCI6Ijg1OWQ1OTFiMWEwMzY3NmVmOTdhZGRjYWQ2OTFmMTRiMThkMzRiYmJiZjYxMjI3Y2U4ZTNjOGNhZGFkYmQwOTE4MjEzYWU0ZjFlMGYzYjBkMDQ2YWU2ZWRkZjk3YWRjZjE4MGNjYTY0ZGY5NmU3ZDRmYWU5MGMxNTg3MGE2ZTQ4Iiwic2Vxbm8iOjQ2MjAyN30sInByZXYiOiIyZDIxNDdlOTk3NGFmMmMyMjAwNDViYmU5N2EwYzZlMGVhYWQxODQzYmY1ZTJlY2ZjYWZiNDg4ZTdhOWYyOGY5Iiwic2Vxbm8iOjQwLCJ0YWciOiJzaWduYXR1cmUifaNzaWfEQJdVWKkb9Kv2SYql/6hIQeDYJsf2ZTuMRsEyuygfZsKquP6S9mXf8vVVjbk0Jk2bqR4DdLv/n6PjdH7KbiAO/QGoc2lnX3R5cGUgo3RhZ80CAqd2ZXJzaW9uAQ==
And finally, I am proving ownership of this host by posting or
appending to this document.
View my publicly-auditable identity here: https://keybase.io/onlyhavecans
==================================================================

111
extras/publickey.asc

@ -1,111 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
aLsY/CHptWb24XRNr77j
=rPKm
-----END PGP PUBLIC KEY BLOCK-----

73
fabfile.py

@ -1,73 +0,0 @@
from fabric.api import *
import fabric.contrib.project as project
import os
import sys
import SimpleHTTPServer
import SocketServer
# Local path configuration (can be absolute or relative to fabfile)
env.deploy_path = 'output'
DEPLOY_PATH = env.deploy_path
# Remote server configuration
production = 'tbunnyman@bounce.bunni.biz:22'
dest_path = 'www'
# Rackspace Cloud Files configuration settings
env.cloudfiles_username = 'my_rackspace_username'
env.cloudfiles_api_key = 'my_rackspace_api_key'
env.cloudfiles_container = 'my_cloudfiles_container'
def clean():
if os.path.isdir(DEPLOY_PATH):
local('rm -rf {deploy_path}'.format(**env))
local('mkdir {deploy_path}'.format(**env))
def build():
local('pelican -s pelicanconf.py')
def rebuild():
clean()
build()
def regenerate():
local('pelican -r -s pelicanconf.py')
def serve():
os.chdir(env.deploy_path)
PORT = 8000
class AddressReuseTCPServer(SocketServer.TCPServer):
allow_reuse_address = True
server = AddressReuseTCPServer(('', PORT), SimpleHTTPServer.SimpleHTTPRequestHandler)
sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
server.serve_forever()
def reserve():
build()
serve()
def preview():
local('pelican -s publishconf.py')
def cf_upload():
rebuild()
local('cd {deploy_path} && '
'swift -v -A https://auth.api.rackspacecloud.com/v1.0 '
'-U {cloudfiles_username} '
'-K {cloudfiles_api_key} '
'upload -c {cloudfiles_container} .'.format(**env))
@hosts(production)
def publish():
local('pelican -s publishconf.py')
project.rsync_project(
remote_dir=dest_path,
exclude=".DS_Store",
local_dir=DEPLOY_PATH.rstrip('/') + '/',
delete=True,
extra_opts='-c',
)

7
layouts/partials/share.html

@ -0,0 +1,7 @@
<ul class="article-share">
<li>
<a data-pocket-label="pocket" data-pocket-count="horizontal" class="pocket-btn" data-lang="en"></a>
<script>!function(d,i){if(!d.getElementById(i)){var j=d.createElement("script");j.id=i;j.src="https://widgets.getpocket.com/v1/j/btn.js?v=1";var w=d.getElementById(i);d.body.appendChild(j);}}(document,"pocket-btn-js");</script>
</li>
</ul>

4
netlify.toml

@ -0,0 +1,4 @@
[context.production.environment]
HUGO_VERSION = "0.41.0"
[context.deploy-preview.environment]
HUGO_VERSION = "0.41.0"

42
pelicanconf.py

@ -1,42 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = u"D.O.S."
SITENAME = u"BunnyMan.Info"
SITESUBTITLE = u"Because life is too awesome not to share"
SITEURL = ''
TIMEZONE = 'US/Pacific'
DEFAULT_LANG = 'en'
DEFAULT_PAGINATION = 3
# Use RSS
FEED_DOMAIN = SITEURL
FEED_RSS = 'feeds/rss'
CATEGORY_FEED_RSS = 'feeds/category.%s.rss'
TAG_FEED_RSS = None
FEED_MAX_ITEMS = 30
# Theme
THEME = './theme/chunk'
SINGLE_AUTHOR = False
DISPLAY_CATEGORIES_ON_MENU = True
DEFAULT_DATE_FORMAT = ('%b %d %Y')
# TYPOGRIFY = True
# Blogroll
LINKS = (
('GitHub', 'https://github.com/onlyhavecans'),
)
# Cleaner page links
PAGE_URL = '{slug}.html'
PAGE_SAVE_AS = '{slug}.html'
PAGE_LANG_URL = '{slug}-{lang}.html'
PAGE_LANG_SAVE_AS = '{slug}-{lang}.html'
# Cleaner Articles
ARTICLE_URL = 'posts/{date:%Y}/{date:%b}/{date:%d}/{slug}/'
ARTICLE_SAVE_AS = 'posts/{date:%Y}/{date:%b}/{date:%d}/{slug}/index.html'

25
publishconf.py

@ -1,25 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
# This file is only used if you use `make publish` or
# explicitly specify it as your config file.
import os
import sys
sys.path.append(os.curdir)
from pelicanconf import *
SITEURL = 'http://bunnyman.info'
RELATIVE_URLS = False
# FEED_ALL_ATOM = 'feeds/all.atom.xml'
# CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
DELETE_OUTPUT_DIRECTORY = True
# Following items are often useful when publishing
DISQUS_SITENAME = "bunnymaninfo"
MINT = True
# GOOGLE_ANALYTICS = ""

3
requirements.txt

@ -1,3 +0,0 @@
pelican
Jinja2
Markdown

1
theme/chunk

@ -1 +0,0 @@
Subproject commit f9206df831d497688516cf86dd089004be1ee06a

1
themes/whiteplain

@ -0,0 +1 @@
Subproject commit c1167220ccc7c0303b3ffe407025b936f4714a65
Loading…
Cancel
Save