34 lines
		
	
	
		
			721 B
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			721 B
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
| (defvar *osname* 'unknown)
 | |
| 
 | |
| (defun darwin-path ()
 | |
|   (let ((files (file-expand-wildcards "/etc/paths.d/*")))
 | |
|     (my-fold-left #'(lambda (acc e)
 | |
| 		      (if (not acc)
 | |
| 			  e
 | |
| 			(concat acc ":" e)))
 | |
| 		  nil
 | |
| 		  (loop for d in files
 | |
| 			collect (substring
 | |
| 				 (shell-command-to-string
 | |
| 				  (concat " cat " d
 | |
| 					  "|sed -e '/^$/d' "))
 | |
| 				 0 -1)))))
 | |
| (defun darwin-init ()
 | |
|   (setf *osname* 'darwin)
 | |
|   (setenv "PATH"
 | |
| 	  (concat (getenv "PATH")
 | |
| 		  ":/opt/local/bin:/opt/local/sbin:"
 | |
| 		  (darwin-path)))
 | |
|   (message "PATH=%s" (getenv "PATH")))
 | |
| 
 | |
| (defun berkeley-unix-init ()
 | |
|   (setf *osname* 'bsd)
 | |
|   t)
 | |
| 
 | |
| (defmacro os-init ()
 | |
|   (let ((osinit (intern (concat (symbol-name system-type)
 | |
| 				"-init"))))
 | |
|     `(,osinit)))
 | |
| 
 | |
| (os-init)
 | 
