[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] feature/integrated-elpa 2456488 09/23: Start to factor out
From: |
Phillip Lord |
Subject: |
[Emacs-diffs] feature/integrated-elpa 2456488 09/23: Start to factor out |
Date: |
Fri, 16 Sep 2016 20:34:16 +0000 (UTC) |
branch: feature/integrated-elpa
commit 24564882ea7e911477c5a44c7a6b67d5ea11cbf7
Author: Phillip Lord <address@hidden>
Commit: Phillip Lord <address@hidden>
Start to factor out
---
packages/GNUmakefile | 27 ++++----
packages/example/example.el | 11 ---
packages/example/test/one-test.el | 4 --
packages/package-build.el | 134 -------------------------------------
packages/package-test.el | 60 -----------------
packages/temp.el | 2 +
6 files changed, 17 insertions(+), 221 deletions(-)
diff --git a/packages/GNUmakefile b/packages/GNUmakefile
index 21dfd12..d419b1d 100644
--- a/packages/GNUmakefile
+++ b/packages/GNUmakefile
@@ -12,24 +12,27 @@ all: build-all
build-all: $(DIRS) $(EMACS)
-define package_template
-$(1): $(1)/$(1)-pkg.el
+# define package_template
+# $(1): $(1)/$(1)-pkg.el
-$(1)/$(1)-pkg.el:
- $$(EMACS) --batch --load package-build.el --eval
'(package-build-prepare "$(1)")'
+# $(1)/$(1)-pkg.el:
+# $$(EMACS) --batch --load package-build.el --eval
'(package-build-prepare "$(1)")'
-endef
+# endef
-$(foreach dir,$(DIRS),$(eval $(call package_template,$(dir))))
+# $(foreach dir,$(DIRS),$(eval $(call package_template,$(dir))))
-define test_template
-$(1)-test:
- $$(EMACS) --batch --load package-test.el --eval
'(assess-discover-run-and-exit-batch-dir "$(1)")'
-endef
+# define test_template
+# $(1)-test:
+# $$(EMACS) --batch --load package-test.el --eval
'(assess-discover-run-and-exit-batch-dir "$(1)")'
+# endef
-$(foreach dir,$(DIRS),$(eval $(call test_template,$(dir))))
+# $(foreach dir,$(DIRS),$(info $(call test_template,$(dir))))
+
+# test: $(patsubst %,%-test,$(DIRS))
+
+include gnumakefile.mk
-test: $(patsubst %,%-test,$(DIRS))
clean:
find . -name "*pkg.el" -exec rm -v {} \;
diff --git a/packages/example/example.el b/packages/example/example.el
deleted file mode 100644
index 992aa0c..0000000
--- a/packages/example/example.el
+++ /dev/null
@@ -1,11 +0,0 @@
-;;; example.el --- Do nothing as an example
-
-;; Copyright (c) 2016 Free Software Foundation, Inc.
-
-;; Version: 1.0
-
-;;; Code:
-;;;###autoload
-(defun example-hello-world ()
- (interactive)
- (message "hello world"))
diff --git a/packages/example/test/one-test.el
b/packages/example/test/one-test.el
deleted file mode 100644
index fb499e8..0000000
--- a/packages/example/test/one-test.el
+++ /dev/null
@@ -1,4 +0,0 @@
-(require 'ert)
-
-(ert-deftest does-ert-test-test ()
- (should t))
diff --git a/packages/package-build.el b/packages/package-build.el
deleted file mode 100644
index 57987b9..0000000
--- a/packages/package-build.el
+++ /dev/null
@@ -1,134 +0,0 @@
-(require 'package)
-(require 'lisp-mnt)
-
-;; these functions are stolen from ELPA
-(defun archive--metadata (dir pkg)
- "Return a list (SIMPLE VERSION DESCRIPTION REQ EXTRAS),
-where SIMPLE is non-nil if the package is simple;
-VERSION is the version string of the simple package;
-DESCRIPTION is the brief description of the package;
-REQ is a list of requirements;
-EXTRAS is an alist with additional metadata.
-
-PKG is the name of the package and DIR is the directory where it is."
- (let* ((mainfile (expand-file-name (concat pkg ".el") dir))
- (files (directory-files dir nil "\\`dir\\'\\|\\.el\\'")))
- (setq files (delete (concat pkg "-pkg.el") files))
- (setq files (delete (concat pkg "-autoloads.el") files))
- (cond
- ((file-exists-p mainfile)
- (with-temp-buffer
- (insert-file-contents mainfile)
- (goto-char (point-min))
- (if (not (looking-at ";;;.*---[ \t]*\\(.*?\\)[ \t]*\\(-\\*-.*-\\*-[
\t]*\\)?$"))
- (error "Can't parse first line of %s" mainfile)
- ;; Grab the other fields, which are not mandatory.
- (let* ((description (match-string 1))
- (version
- (or (lm-header "package-version")
- (lm-header "version")
- (unless (equal pkg "org")
- (error "Missing `version' header"))))
- (_ (archive--version-to-list version)) ; Sanity check!
- (requires-str (lm-header "package-requires"))
- (pt (lm-header "package-type"))
- (simple (if pt (equal pt "simple") (= (length files) 1)))
- (keywords (lm-keywords-list))
- (url (or (lm-header "url")
- (format archive-default-url-format pkg)))
- (req
- (if requires-str
- (mapcar 'archive--convert-require
- (car (read-from-string requires-str))))))
- (list simple version description req
- ;; extra parameters
- (list (cons :url url)
- (cons :keywords keywords)))))))
- (t
- (error "Can't find main file %s file in %s" mainfile dir)))))
-
-;; PWL: this is changed to give a clean entry point
-(defun archive--refresh-pkg-file (directory)
- (let* ((dir directory)
- (pkg (file-name-nondirectory dir)))
- (apply #'archive--write-pkg-file dir pkg
- (cdr (archive--metadata dir pkg)))))
-
-
-(defun archive--write-pkg-file (pkg-dir name version desc requires extras)
- (let ((pkg-file (expand-file-name (concat name "-pkg.el") pkg-dir))
- (print-level nil)
- (print-quoted t)
- (print-length nil))
- (write-region
- (concat (format ";; Generated package description from %s.el\n"
- name)
- (prin1-to-string
- (nconc
- (list 'define-package
- name
- version
- desc
- (list 'quote
- ;; Turn version lists into string form.
- (mapcar
- (lambda (elt)
- (list (car elt)
- (package-version-join (cadr elt))))
- requires)))
- (archive--alist-to-plist-args extras)))
- "\n")
- nil
- pkg-file)))
-
-(defun archive--version-to-list (vers)
- (when vers
- (let ((l (version-to-list vers)))
- ;; Signal an error for things like "1.02" which is parsed as "1.2".
- (cl-assert (equal vers (package-version-join l)) nil
- "Unsupported version syntax %S" vers)
- l)))
-
-(defconst archive-default-url-format "http://elpa.gnu.org/packages/%s.html")
-(defun archive--alist-to-plist-args (alist)
- (mapcar (lambda (x)
- (if (and (not (consp x))
- (or (keywordp x)
- (not (symbolp x))
- (memq x '(nil t))))
- x `',x))
- (apply #'nconc
- (mapcar (lambda (pair) (list (car pair) (cdr pair))) alist))))
-
-(defun archive--convert-require (elt)
- (list (car elt)
- (archive--version-to-list (car (cdr elt)))))
-
-
-(defun package-build-dir (pkg)
- (concat default-directory pkg))
-
-;; So this one does the business during build
-(defun package-build-prepare (dir)
- (let ((descr
- (package-desc-create :name (make-symbol dir)))
- (location (package-build-dir dir)))
- (archive--refresh-pkg-file location)
- (setq descr (package-load-descriptor location))
- (package-generate-autoloads (package-desc-name descr) location)
- (package-activate descr)
- (package--compile descr)))
-
-
-;; and this one does the business during the load
-(defun test-load (dir)
- (setq descr
- (package-load-descriptor
- (test-dir dir)))
- (package--load-files-for-activation descr nil))
-
-;; (test-prepare "all")
-;; (test-load "all")
-
-;; (test-prepare "metar")
-;; (test-load "metar")
diff --git a/packages/package-test.el b/packages/package-test.el
deleted file mode 100644
index 75bd07f..0000000
--- a/packages/package-test.el
+++ /dev/null
@@ -1,60 +0,0 @@
-(defun assess-discover-tests (directory)
- "Discover tests in directory.
-
-Tests must conform to one (and only one!) of several naming
-schemes.
-
- - End with -test.el
- - End with -tests.el
- - Start with test-
- - Any .el file in a directory called test
- - Any .el file in a directory called tests
-
-Each of these is tried until one matches. So, a top-level file
-called \"blah-test.el\" will prevent discovery of files in a
-tests directory."
- (or
- ;; files with
- (directory-files directory nil ".*-test.el$")
- (directory-files directory nil ".*-tests.el$")
- (directory-files directory nil "test-.*.el$")
- (let ((dir-test
- (concat directory "/test/")))
- (when (file-exists-p dir-test)
- (mapcar
- (lambda (file)
- (concat dir-test file))
- (directory-files dir-test nil ".*.el"))))
- (let ((dir-tests
- (concat directory "/tests/")))
- (when (file-exists-p dir-tests)
- (mapcar
- (lambda (file)
- (concat dir-tests file))
- (directory-files dir-tests nil ".*.el"))))))
-
-(defun assess-discover--load-all-tests (directory)
- (let ((loads
- (assess-discover-tests directory)))
- (mapc
- 'load
- loads)))
-
-(defun assess-discover-load-tests ()
- (interactive)
- (assess-discover--load-all-tests default-directory))
-
-;;;###autoload
-(defun assess-discover-run-batch (&optional selector)
- (assess-discover--load-all-tests default-directory)
- (ert-run-tests-batch selector))
-
-;;;###autoload
-(defun assess-discover-run-and-exit-batch (&optional selector)
- (assess-discover-run-and-exit-batch-dir default-directory))
-
-(defun assess-discover-run-and-exit-batch-dir (directory &optional selector)
- (assess-discover--load-all-tests
- (concat default-directory
- directory))
- (ert-run-tests-batch-and-exit selector))
diff --git a/packages/temp.el b/packages/temp.el
new file mode 100644
index 0000000..ccf0101
--- /dev/null
+++ b/packages/temp.el
@@ -0,0 +1,2 @@
+(package-makefile--package-dirs "core")
+(package-makefile--package-dirs "/home/phillord/src/git/elpa/master/packages")
- [Emacs-diffs] feature/integrated-elpa 48e846d 12/23: Build system now in generated makefile, (continued)
- [Emacs-diffs] feature/integrated-elpa 48e846d 12/23: Build system now in generated makefile, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 6b13eac 03/23: Initial Support for ELPA packages in core, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa cf1d196 21/23: ELPA as an environment variable, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 73afa20 02/23: Starting to add test support, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 031233d 05/23: build-all depends on emacs, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 937c695 18/23: Add bug report about multifile packages, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 4b0cf9d 06/23: Various path hacks, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 4f6df43 15/23: README added, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 5a2fa7a 11/23: Lots of changes, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa d208ef5 13/23: Makefile generator for tests, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 2456488 09/23: Start to factor out,
Phillip Lord <=
- [Emacs-diffs] feature/integrated-elpa 5d0232b 19/23: Multifile packages now work, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa b2f34a4 20/23: ELPA support, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa dad684e 10/23: Refactor new files, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa 8b53bb8 14/23: Summarization happening and some ELPA support, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa db2bcc6 22/23: Merge branch into feature/integrated-elpa, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa bfe28f0 23/23: Better handling of ELPA env var, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa ac145ce 16/23: autoconf support, Phillip Lord, 2016/09/16
- [Emacs-diffs] feature/integrated-elpa c1c7c63 01/23: Initial Support for ELPA packages in core, Phillip Lord, 2016/09/16