Permalink
Browse files

Merge pull request #39 from tkf/shell-utils

Add eproject/shell integration functions.
  • Loading branch information...
2 parents da08a04 + 6555f9a commit 906bb29439376dc1c6174daf9530d254e0d37fd2 @jrockway committed Dec 7, 2012
Showing with 46 additions and 0 deletions.
  1. +46 −0 contrib/eproject.sh
View
@@ -0,0 +1,46 @@
+### eproject.sh --- eproject shell helper functions
+
+# Copyright (C) 2012 Takafumi Arakaki
+
+# Author: Takafumi Arakaki <aka.tkf at gmail.com>
+# Keywords: eproject
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+### Commentary:
+
+# To use this file, add the following line in your shell setting:
+# source PATH/TO/eproject.sh
+
+### Code:
+
+# Go to currently active project root in Emacs
+cdp() {
+ local EMACS_CWP=$(emacsclient -a false -e "
+ (let ((current-buffer
+ (nth 1 (assoc 'buffer-list
+ (nth 1 (nth 1 (current-frame-configuration)))))))
+ (or (ignore-errors (eproject-root current-buffer))
+ (with-current-buffer current-buffer
+ (let ((filename (buffer-file-name)))
+ (if filename
+ (file-name-directory filename)
+ default-directory)))))
+ " | sed 's/^"\(.*\)"$/\1/')
+ if [ -d "$EMACS_CWP" ]; then
+ cd "$EMACS_CWP"
+ else
+ return 1
+ fi
+}

0 comments on commit 906bb29

Please sign in to comment.