Attachment 'bzr-tools.el'
Download 1 ;; Copyright (c) 2008-2009 Jonathan Lange, Matthew Lefkowitz
2 ;;
3 ;; Permission is hereby granted, free of charge, to any person obtaining
4 ;; a copy of this software and associated documentation files (the
5 ;; "Software"), to deal in the Software without restriction, including
6 ;; without limitation the rights to use, copy, modify, merge, publish,
7 ;; distribute, sublicense, and/or sell copies of the Software, and to
8 ;; permit persons to whom the Software is furnished to do so, subject to
9 ;; the following conditions:
10 ;;
11 ;; The above copyright notice and this permission notice shall be
12 ;; included in all copies or substantial portions of the Software.
13 ;;
14 ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 ;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 ;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 ;; LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 ;; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 ;; WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22
23 (require 'grep)
24
25 (defconst bzr-tools-grep-command
26 "bzr ls -VR --kind=file --null | xargs -0 grep -In %s"
27 "The command used for grepping files using bzr. See `bzr-tools-grep'.")
28
29
30 ;; Run 'code' at the root of the branch which dirname is in.
31 (defmacro bzr-tools-at-branch-root (dirname &rest code)
32 `(let ((default-directory (locate-dominating-file (expand-file-name ,dirname) ".bzr"))) ,@code))
33
34
35 (defun bzr-tools-grep (expression dirname)
36 "Search a branch for `expression'. If there's a C-u prefix, prompt for `dirname'."
37 (interactive
38 (let* ((regexp (grep-read-regexp))
39 (dir (if (null current-prefix-arg)
40 default-directory
41 (read-directory-name (format "Search for %s in: " string)))))
42 (list regexp dir)))
43 (bzr-tools-at-branch-root dirname
44 (grep-find (format bzr-tools-grep-command (shell-quote-argument expression)))))
45
46
47 (defun bzr-tools-branch-todo ()
48 (interactive)
49 (bzr-tools-at-branch-root "."
50 (compile "bzr todo" t)))
51
52
53 (provide 'bzr-tools)
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.