From 0864ffaba6e44e8fc49f9871adb1200cc0885f9e Mon Sep 17 00:00:00 2001
From: Chizi123 <joelgrun@gmail.com>
Date: Mon, 10 Jun 2019 11:51:03 +0000
Subject: [PATCH] Made verilog-mode update every week, code from auto-package-update
---
config.org | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 52 insertions(+), 7 deletions(-)
diff --git a/config.org b/config.org
index 2aea1c7..283258b 100644
--- a/config.org
+++ b/config.org
@@ -805,19 +805,64 @@
Pull the latest version from the web
#+BEGIN_SRC emacs-lisp
(defun get-verilog-latest()
+ (if (not(file-directory-p "~/.emacs.d/elpa/verilog-mode"))
+ (make-directory "~/.emacs.d/elpa/verilog-mode"))
+ (if (file-exists-p "~/.emacs.d/elpa/verilog-mode/verilog-mode.el")
+ (delete-file "~/.emacs.d/elpa/verilog-mode/verilog-mode.el"))
(url-copy-file "https://www.veripool.org/ftp/verilog-mode.el" "~/.emacs.d/elpa/verilog-mode/verilog-mode.el" 1))
#+END_SRC
**** Integrate into emacs
Add updated version and integrate it with Emacs.
#+BEGIN_SRC emacs-lisp
- (use-package verilog-mode
- :init
- (get-verilog-latest)
- (add-to-list 'load-path "~/.emacs.d/elpa/verilog-mode/verilog-mode.el")
- :config
- (autoload 'verilog-mode "verilog-mode" "Verilog mode" t )
- (add-to-list 'auto-mode-alist '("\\.[ds]?vh?\\'" . verilog-mode)))
+ (defun verilog-read-file-as-string (file)
+ "Read FILE contents."
+ (when (file-exists-p file)
+ (with-temp-buffer
+ (insert-file-contents file)
+ (buffer-string))))
+
+ (defun verilog-write-string-to-file (file string)
+ "Substitute FILE contents with STRING."
+ (with-temp-buffer
+ (insert string)
+ (when (file-writable-p file)
+ (write-region (point-min)
+ (point-max)
+ file))))
+
+ (defun verilog-today-day ()
+ (time-to-days (current-time)))
+
+ (defun should-update-verilog-p ()
+ "Return non-nil when an update is due."
+ (and
+ (or
+ (not (file-exists-p "~/.emacs.d/.last-verilog-update-day"))
+ (if (>= (/ (- (verilog-today-day) (verilog-read-last-update-day)) 7) 1)
+ t
+ nil))))
+
+ (defun verilog-read-last-update-day ()
+ "Read last update day."
+ (string-to-number
+ (verilog-read-file-as-string "~/.emacs.d/.last-verilog-update-day")))
+
+ (defun verilog-write-current-day ()
+ "Store current day."
+ (verilog-write-string-to-file
+ "~/.emacs.d/.last-verilog-update-day"
+ (int-to-string (verilog-today-day))))
+
+ (use-package verilog-mode
+ :init
+ (when (should-update-verilog-p)
+ (get-verilog-latest)
+ (verilog-write-current-day))
+ (add-to-list 'load-path "~/.emacs.d/elpa/verilog-mode/verilog-mode.el")
+ :config
+ (autoload 'verilog-mode "verilog-mode" "Verilog mode" t )
+ (add-to-list 'auto-mode-alist '("\\.[ds]?vh?\\'" . verilog-mode)))
#+END_SRC
* Org mode
--
Gitblit v1.10.0