emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
blob bf70a80498b78bba8853d0a2b859419897821e32 3784 bytes (raw)
name: UTILITIES/org-fixup.el 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
 
;;; org-fixup.el - to make life easier for folks without GNU make
;;
;; Author: Achim Gratz
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;;
;; This file is not yet part of GNU Emacs.
;;
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Commentary:

(require 'org-compat)
(require 'autoload)

(defun org-make-org-version (org-release org-git-version odt-dir)
  (find-file "org-version.el")
  (erase-buffer)
  (insert "\
;;; org-version.el --- autogenerated file, do not edit
;;
;;; Code:
;;;\#\#\#autoload
\(defun org-release ()
  \"The release version of org-mode.
  Inserted by installing org-mode or when a release is made.\"
   (let ((org-release \"" org-release "\"))
     org-release))
;;;\#\#\#autoload
\(defun org-git-version ()
  \"The Git version of org-mode.
  Inserted by installing org-mode or when a release is made.\"
   (let ((org-git-version \"" org-git-version "\"))
     org-git-version))
;;;\#\#\#autoload
\(defconst org-odt-data-dir \"" odt-dir "\"
  \"The location of ODT styles.\")
\f\n;; Local Variables:\n;; version-control: never
;; no-byte-compile: t
;; coding: utf-8\n;; End:\n;;; org-version.el ends here\n")
  (save-buffer))

(defun org-make-org-install (absfile)
  (find-file absfile)
  (erase-buffer)
  (insert ";;; org-install.el --- autogenerated file, do not edit\n;;\n;;; Code:\n")
  (let ((files (directory-files (file-name-directory absfile) 'full "^[^.#~]*\\.el$")))
    (mapc (lambda (f) (generate-file-autoloads f)) files))
  (insert "\f\n(provide 'org-install)\n")
  (insert "\f\n;; Local Variables:\n;; version-control: never\n")
  (insert ";; no-byte-compile: t\n;; no-update-autoloads: t\n")
  (insert ";; coding: utf-8\n;; End:\n;;; org-install.el ends here\n")
  (save-buffer))

(defmacro org-fixup ()
  (let* ((origin default-directory)
	 (dirlisp (org-find-library-dir "org"))
	 (dirorg (concat dirlisp "../" ))
	 (dirgit (concat dirorg ".git/" ))
	 (org-version "N/A-fixup")
	 (org-git-version "N/A-fixup !!check installation!!"))
    (if (load (concat dirlisp "org-version.el") 'noerror 'nomessage 'nosuffix)
	(setq org-version     (org-release)
	      org-git-version (org-git-version))
      (when (and (file-exists-p dirgit)
		 (executable-find "git"))
	(unwind-protect
	    (progn
	      (cd dirorg)
	      (let (( git6 (substring (shell-command-to-string "git describe --abbrev=6 HEAD") 0 -1))
		    ( git0 (substring (shell-command-to-string "git describe --abbrev=0 HEAD") 0 -1))
		    ( gitd (string-match "\\S-" (shell-command-to-string "git status -uno --porcelain"))))
		(setq org-git-version (concat git6 (when gitd ".dirty")))
		(if (string-match "^release_" git0)
		    (setq org-version (substring git0 8))
		  (setq org-version git0)))
	      (cd origin)))))
    `(progn
       (defun org-release () ,org-version)
       (defun org-git-version () ,org-git-version)
       "org-fixup.el: redefined org version.")))

(provide 'org-fixup)
\f
;; Local Variables:
;; no-byte-compile: t
;; coding: utf-8
;; End:
;;; org-fixup.el ends here

debug log:

solving bf70a80 ...
found bf70a80 in https://git.savannah.gnu.org/cgit/emacs/org-mode.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).