Shell aliases for Octopress

A few days ago I moved to ZSH from bash, since my friend David was pushing me to try it: after a few days I really have to say that there is no reason not to switch – mainly for the git integration and double-tab behaviour – and I also created a few aliases that work like a charm in Octopress.

The majority of them would also work in bash, but I remember I had to make some changes to make Octopress work with ZSH, so you may want to have a look at that discussion first.

Bare in mind that all of this aliases need to be put in the ~/.zshrc file.

octopreview

1
alias octopreview='rake preview'

Starts Octopress’ preview mode:

1
2
3
~/Sites/odino.github.com (source)✹✭ ᐅ octopreview

Starting to watch source with Jekyll and Compass. Starting Rack on port 4000

octopost

1
2
3
octopost () {
  rake new_post && octopreview;
}

This task let’s you create a new post and automatically launches Octopress’ preview mode:

1
2
3
4
5
6
~/Sites/odino.github.com (source)✹ ᐅ octopost

Enter a title for your post: bash aliases for octopress
mkdir -p source/_posts
Creating new post: source/_posts/2012-08-24-bash-aliases-for-octopress.markdown
Starting to watch source with Jekyll and Compass. Starting Rack on port 4000

octostat

1
2
3
octostat () {
  rake list_posts;
}

Based on this rake task that I slightly modified for ZSH, this lets you find out which posts are published/unpublished in your blog:

1
2
3
4
~/Sites/odino.github.com (source)✹✭ ᐅ octostat

(pub|unpub): unpub
2012-08-24-bash-aliases-for-octopress.markdown

octosave

1
2
3
octosave () {
        git add . && git commit -m "[email protected]" && git push origin source;
}

Saves all your local changes committing and pushing everything on the remote source branch:

1
2
3
4
5
6
7
8
9
10
11
12
~/Sites/odino.github.com (source)✹✭ ᐅ octosave "partial article"

[source 572b571] partial article
 62 files changed, 159 insertions(+), 61 deletions(-)
 create mode 100644 source/_posts/2012-08-24-bash-aliases-for-octopress.markdown
Counting objects: 255, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (129/129), done.
Writing objects: 100% (129/129), 12.45 KiB, done.
Total 129 (delta 64), reused 0 (delta 0)
To [email protected]:odino/odino.github.com.git
   35d5d41..572b571  source -> source

octodeploy

1
2
3
octodeploy () {
        git add . && git commit -m "[email protected]" && git push origin source && rake generate && rake deploy
}

Same as octosave, but – additionally – it deploys all of your changes via rake deploy.

This task is useful when you’re locally done and want to publish your changes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
~/Sites/odino.github.com (source) ᐅ octodeploy "publishing changes"

[source 43e08b3] publishing changes
 1 files changed, 27 insertions(+), 1 deletions(-)
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 848 bytes, done.
Total 5 (delta 4), reused 0 (delta 0)
To [email protected]:odino/odino.github.com.git
   572b571..43e08b3  source -> source
## Generating Site with Jekyll
unchanged sass/screen.scss
/Users/odino/.rvm/gems/ruby-1.9.3-p194/gems/maruku-0.6.0/lib/maruku/input/parse_doc.rb:22:in `<top (required)>': iconv will be deprecated in the future, use String#encode instead.
Configuration from /Users/odino/Sites/odino.github.com/_config.yml
Building site: source -> public
AliasGenerator loading...
Processing 120 post(s) for aliases...
Processing 18 page(s) for aliases...
Successfully generated site: source -> public
## Found posts in preview mode, regenerating files ...
## Generating Site with Jekyll
unchanged sass/screen.scss
/Users/odino/.rvm/gems/ruby-1.9.3-p194/gems/maruku-0.6.0/lib/maruku/input/parse_doc.rb:22:in `<top (required)>': iconv will be deprecated in the future, use String#encode instead.
Configuration from /Users/odino/Sites/odino.github.com/_config.yml
Building site: source -> public
AliasGenerator loading...
Processing 120 post(s) for aliases...
Processing 18 page(s) for aliases...
Successfully generated site: source -> public
## Deploying branch to Github Pages 

## copying public to _deploy
cp -r public/. _deploy
cd _deploy

## Commiting: Site updated at 2012-08-24 07:22:23 UTC
[master 3151733] Site updated at 2012-08-24 07:22:23 UTC
 70 files changed, 70 insertions(+), 70 deletions(-)

## Pushing generated _deploy website
Counting objects: 284, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (143/143), done.
Writing objects: 100% (143/143), 12.25 KiB, done.
Total 143 (delta 70), reused 0 (delta 0)
To [email protected]:odino/odino.github.com.git
   78287e6..3151733  master -> master

## Github Pages deploy complete
cd -

Hi there! I recently wrote an ebook on web application security, currently sold on leanpub, the Amazon Kindle store and gumroad.

It contains 150+ pages of content dedicated to securing web applications and improving your security awareness when building web apps, with chapters ranging from explaining how to secure HTTP cookies with the right flags to understanding why it is important to consider joining a bug bounty program.

Feel free to skim through some of the free chapters published on this blog and, if the content seems interesting enough to you, grab a copy on leanpub, the Amazon Kindle store, gumroad or simply checkout right down below!

Buy the Web Application Security ebook for $6.99

In the mood for some more reading?

...or check the archives.