branch: elpa/rpm-spec-mode
commit 5d23bbf0d310111c493d9150cea7d973ac071aaf
Author: Björn Bidar <bjorn.bi...@thaodan.de>
Commit: Björn Bidar <bjorn.bi...@thaodan.de>

    Add defcustom variable for rpm _topdir insteado existing the list further
---
 rpm-spec-mode.el | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/rpm-spec-mode.el b/rpm-spec-mode.el
index 421215762c..d2dc0477a4 100644
--- a/rpm-spec-mode.el
+++ b/rpm-spec-mode.el
@@ -239,6 +239,13 @@ Can be either a string or a function."
   :type 'boolean
   :group 'rpm-spec)
 
+(defcustom rpm-build-topdir "~/rpmbuild"
+  "Rpm _topdir directory to be used when calling rpmbuild."
+  :type 'directory
+  :safe t
+  :package-version '(rpm-spec . 0.17.0)
+  :group 'rpm-spec)
+
 (defgroup rpm-spec-faces nil
   "Font lock faces for `rpm-spec-mode'."
   :prefix "rpm-spec-"
@@ -944,15 +951,13 @@ WHAT is the tag used."
           (insert insert-text (read-file-name (concat read-text) "" "" nil) 
"\n")
         (insert insert-text (read-from-minibuffer (concat read-text)) 
"\n"))))))
 
-(defun rpm-topdir ()
-  "Use environment to get the topdir for RPMs."
-  (or
-   (getenv "RPM")
-   (getenv "rpm")
-   (if (file-directory-p "~/rpm") "~/rpm/")
-   (if (file-directory-p "~/RPM") "~/RPM/")
-   (if (file-directory-p "/usr/src/redhat/") "/usr/src/redhat/")
-   "/usr/src/RPM"))
+(defun rpm--topdir ()
+  "Try user environment for rpmbuild topdir or default to custom setting."
+  (let ((rpm-envdir (or (getenv "RPM")
+                         (getenv "rpm"))))
+    (if (file-directory-p rpm-envdir)
+        rpm-envdir
+      rpm-build-topdir)))
 
 (defun rpm-insert-n (what)
   "Insert given tag (WHAT) with possible number."
@@ -961,7 +966,7 @@ WHAT is the tag used."
     (if (search-backward-regexp (concat "^" what "\\([0-9]*\\):") nil t)
         (let ((release (1+ (string-to-number (match-string 1)))))
           (forward-line 1)
-          (let ((default-directory (concat (rpm-topdir) "/SOURCES/")))
+          (let ((default-directory (concat (rpm--topdir) "/SOURCES/")))
             (insert what (int-to-string release) ": "
                     (read-file-name (concat what "file: ") "" "" nil) "\n")))
       (goto-char (point-min))
@@ -996,7 +1001,7 @@ WHAT is the tag used."
     (let ((number (read-from-minibuffer (concat tag " number: "))))
       (if (search-forward-regexp
            (concat "^" tag number ":\\s-*\\(.*\\)") nil t)
-          (let ((default-directory (concat (rpm-topdir) "/SOURCES/")))
+          (let ((default-directory (concat (rpm--topdir) "/SOURCES/")))
             (replace-match
              (concat tag number ": "
                      (read-file-name (concat "New " tag number " file: ")

Reply via email to