1
0
Fork 0

Add ‘oni-conf’ and the ability to upload multi-file packages

‘oni-conf’ is the first package to include more than one file, it’s mostly a
package to allow distributing snippets.
This commit is contained in:
Tom Willemse 2019-08-20 00:21:12 -07:00
parent 2d05019aa6
commit 58caf38935
6 changed files with 92 additions and 1 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/*/.cask/
/*/bin/
/*/dist/

View file

@ -2,6 +2,7 @@ image: silex/emacs:26.1-alpine-dev
stages:
- test
- pre-package-multifile
- package
- deploy
@ -25,8 +26,20 @@ test-oni-php:
stage: test
script: make test-oni-php DEPS="oni-flycheck oni-company oni-fci"
package-oni-conf:
stage: pre-package-multifile
before_script:
- rm -rf oni-conf/dist
script:
- cask --path oni-conf package
artifacts:
paths:
- oni-conf/dist/
package:
stage: package
dependencies:
- package-oni-conf
before_script:
- rm -rf bin/
- mkdir bin/

View file

@ -2,7 +2,7 @@ FILES := $(wildcard *.el)
PACKAGE_TARGETS := $(addprefix package-,$(FILES))
package: $(PACKAGE_TARGETS)
package: $(PACKAGE_TARGETS) package-oni-conf
package-%: %
emacs --batch \
@ -10,6 +10,12 @@ package-%: %
--funcall package-initialize \
--eval '(package-upload-file "$^")'
package-oni-conf:
emacs --batch \
--load oni-package.el \
--funcall package-initialize \
--eval '(package-upload-file (car (file-expand-wildcards "oni-conf/dist/*.tar")))'
test-%:
emacs --batch \
--load oni-package.el \

10
oni-conf/Cask Normal file
View file

@ -0,0 +1,10 @@
(source gnu)
(source melpa)
(package-file "./oni-conf.el")
(depends-on "oni-yasnippet" :git "../" :files ("oni-yasnippet.el"))
(files
"*.el"
("snippets" "./snippets/*"))

51
oni-conf/oni-conf.el Normal file
View file

@ -0,0 +1,51 @@
;;; oni-conf.el --- Conf-mode configuration -*- lexical-binding: t; -*-
;; Copyright (C) 2019 Tom Willemse
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
;; Version: 20190613083458
;; Package-Requires: (oni-yasnippet)
;; This program 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 of the License, or
;; (at your option) any later version.
;; This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;; Configuration for the different conf-mode variations.
;;; Code:
(require 'yasnippet)
(defconst oni-conf-root
(file-name-directory
(or load-file-name
(buffer-file-name)))
"The directory where oni-conf was loaded from.")
;;;###autoload
(defun oni-conf-snippets-initialize ()
"Initialize the snippets for oni-conf."
(let ((snippets-dir (expand-file-name "snippets" oni-conf-root)))
(when (boundp 'yas-snippet-dirs)
(add-to-list 'yas-snippet-dirs snippets-dir t))
(yas-load-directory snippets-dir)))
;;;###autoload
(with-eval-after-load 'oni-conf
(with-eval-after-load 'yasnippet
(oni-conf-snippets-initialize)))
(provide 'oni-conf)
;;; oni-conf.el ends here

View file

@ -0,0 +1,8 @@
# -*- mode: snippet; require-final-newline: nil -*-
# name: Xorg Section
# key: Section
# --
Section "$1"
Identifier "$2"
$0
EndSection