Permalink
Browse files

fixed #33 - added bazaar support

  • Loading branch information...
1 parent e2149ce commit 40f0e5eef359547baf64eaa2a3de8e7f9e4d6f47 Bozhidar Batsov committed Apr 11, 2012
Showing with 29 additions and 0 deletions.
  1. +29 −0 package-build.el
View
@@ -231,6 +231,34 @@ seconds; the server cuts off after 10 requests in 20 seconds.")
(let* ((url (format "git://github.com/%s.git" (plist-get config :repo))))
(pb/checkout-git name (plist-put (copy-sequence config) :url url) dir)))
+(defun pb/bzr-repo (dir)
+ "Get the current bzr repo for DIR."
+ (with-temp-buffer
+ (pb/run-process dir "bzr" "info")
+ (goto-char (point-min))
+ (re-search-forward "parent branch: \\(.*\\)")
+ (match-string-no-properties 1)))
+
+(defun pb/checkout-bzr (name config dir)
+ "Check package NAME with config CONFIG out of bzr into DIR."
+ (let ((repo (plist-get config :url)))
+ (with-current-buffer (get-buffer-create "*package-build-checkout*")
+ (goto-char (point-max))
+ (cond
+ ((and (file-exists-p (expand-file-name ".bzr" dir))
+ (string-equal (pb/bzr-repo dir) repo))
+ (print "checkout directory exists, updating...")
+ (pb/run-process dir "bzr" "merge"))
+ (t
+ (when (file-exists-p dir)
+ (delete-directory dir t nil))
+ (print "cloning repository")
+ (pb/run-process nil "bzr" "branch" repo dir)))
+ (pb/run-process dir "bzr" "info" "-vv")
+ (pb/find-parse-time
+ "\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\}\\)"))))
+
+
(defun pb/dump (data file)
"Write DATA to FILE as a pretty-printed Lisp sexp."
(write-region (concat (pp-to-string data) "\n") nil file))
@@ -278,6 +306,7 @@ The file is written to `package-build-working-dir'."
"--exclude=.svn"
"--exclude=.git*"
"--exclude=_darcs"
+ "--exclude=.bzr"
(or (mapcar (lambda (fn) (concat dir "/" fn)) files)
(list dir)))))

0 comments on commit 40f0e5e

Please sign in to comment.