summaryrefslogtreecommitdiff
path: root/pcmpl-rc.el
diff options
context:
space:
mode:
authorThanos Apollo <[email protected]>2024-02-16 09:02:43 +0200
committerThanos Apollo <[email protected]>2024-02-16 09:46:10 +0200
commitc94ac5919b404fe3fd7c2efa8cacf811952a8e36 (patch)
tree21aa2bf6c5615b8da53df0c4ff85ffb038e851f0 /pcmpl-rc.el
init project
Diffstat (limited to 'pcmpl-rc.el')
-rw-r--r--pcmpl-rc.el63
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)