diff options
author | Thanos Apollo <[email protected]> | 2024-02-16 09:02:43 +0200 |
---|---|---|
committer | Thanos Apollo <[email protected]> | 2024-02-16 09:46:10 +0200 |
commit | c94ac5919b404fe3fd7c2efa8cacf811952a8e36 (patch) | |
tree | 21aa2bf6c5615b8da53df0c4ff85ffb038e851f0 /pcmpl-rc.el |
init project
Diffstat (limited to 'pcmpl-rc.el')
-rw-r--r-- | pcmpl-rc.el | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/pcmpl-rc.el b/pcmpl-rc.el new file mode 100644 index 0000000..f43c2ba --- /dev/null +++ b/pcmpl-rc.el @@ -0,0 +1,63 @@ +;;; pcmpl-rc.el --- Completion for AUR helpers -*- lexical-binding: t; -*- + +;; Copyright (C) 2024 Thanos Apollo + +;; Author: Thanos Apollo <[email protected]> +;; Keywords: yay paru completion +;; URL: https://git.thanosapollo.com/yeetube +;; Version: 0.0.1 + + +;; Package-Requires: ((emacs "27.2")) + +;; 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: + +;; This package provides openrc service completions for Gentoo +;; utilizing pcomplete + +;;; Code: + + +(defun pcmpl-rc-service-files () + "Get all services located at /etc/init.d" + (cl-remove-if (lambda (x) (member x '("." ".."))) + (mapcar 'file-name-nondirectory (directory-files "/etc/init.d" t)))) + +;; get all available services +(defvar pcmpl-rc-running-available-services (split-string (shell-command-to-string "rc-service --list") "\n" t)) + +;; rc options + +(defvar pcmpl-rc-service-options '("status" "restart" "start" "stop" "zap")) + +(defvar pcmpl-rc-update-runlevel '("boot" "default" "nonetwork" "shutdown" "sysinit")) + +(defvar pcmpl-rc-update-options '("add" "del" "show")) + + +(defun pcomplete/rc-service () + "Completion for rc-service" + (pcomplete-here (pcmpl-rc-service-files)) + (pcomplete-here pcmpl-rc-service-options)) + +(defun pcomplete/rc-update () + "Completion for rc-update" + (pcomplete-here pcmpl-rc-update-options) + (pcomplete-here (pcmpl-rc-service-files)) + (pcomplete-here pcmpl-rc-update-runlevel)) + + +(provide 'pcmpl-rc) |