attachment:bzr-tools.el of EmacsTips

Not logged in - Log In / Register

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.
  • [get | view] (2009-07-22 07:17:51, 2.1 KB) [[attachment:bzr-tools.el]]
 All files | Selected Files: delete move to page

You are not allowed to attach a file to this page.