From 24564882ea7e911477c5a44c7a6b67d5ea11cbf7 Mon Sep 17 00:00:00 2001 From: Phillip Lord Date: Mon, 12 Sep 2016 18:09:32 +0100 Subject: [PATCH] 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(-) delete mode 100644 packages/example/example.el delete mode 100644 packages/example/test/one-test.el delete mode 100644 packages/package-build.el delete mode 100644 packages/package-test.el create mode 100644 packages/temp.el diff --git a/packages/GNUmakefile b/packages/GNUmakefile index 21dfd124d85..d419b1de475 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 992aa0cc691..00000000000 --- 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 fb499e83602..00000000000 --- 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 57987b93bde..00000000000 --- 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 75bd07f50ff..00000000000 --- 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 00000000000..ccf0101cb31 --- /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") -- 2.39.5