diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-05 06:15:13 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-05 06:15:13 -0500 |
| commit | 16f67628b09a67882e735586bf7ea56eb7651644 (patch) | |
| tree | b4927a4b7c7e1a24e6b083f1b3679a17a2a83e46 /.cask/30.2/bootstrap/commander-20140120.1852 | |
| parent | eb01b3d24739e916d9dca33f5f039650a9de8457 (diff) | |
chore: gitignore and untrack build artifacts, vendored assets, personal files
Untrack .cask/, .localrepo/ (61M), emojis/ (7.2M), inbox/, todo.org,
v2mom.org, .time-zones.el. Move test-reporter-spec.org to docs/ (already
gitignored). Reduces tracked repo size significantly.
Diffstat (limited to '.cask/30.2/bootstrap/commander-20140120.1852')
3 files changed, 0 insertions, 554 deletions
diff --git a/.cask/30.2/bootstrap/commander-20140120.1852/commander-autoloads.el b/.cask/30.2/bootstrap/commander-20140120.1852/commander-autoloads.el deleted file mode 100644 index 02f9aee2..00000000 --- a/.cask/30.2/bootstrap/commander-20140120.1852/commander-autoloads.el +++ /dev/null @@ -1,28 +0,0 @@ -;;; commander-autoloads.el --- automatically extracted autoloads (do not edit) -*- lexical-binding: t -*- -;; Generated by the `loaddefs-generate' function. - -;; This file is part of GNU Emacs. - -;;; Code: - -(add-to-list 'load-path (or (and load-file-name (directory-file-name (file-name-directory load-file-name))) (car load-path))) - - - -;;; Generated autoloads from commander.el - -(register-definition-prefixes "commander" '("commander")) - -;;; End of scraped data - -(provide 'commander-autoloads) - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; no-native-compile: t -;; coding: utf-8-emacs-unix -;; End: - -;;; commander-autoloads.el ends here diff --git a/.cask/30.2/bootstrap/commander-20140120.1852/commander-pkg.el b/.cask/30.2/bootstrap/commander-20140120.1852/commander-pkg.el deleted file mode 100644 index 20da8b20..00000000 --- a/.cask/30.2/bootstrap/commander-20140120.1852/commander-pkg.el +++ /dev/null @@ -1,13 +0,0 @@ -;; -*- no-byte-compile: t; lexical-binding: nil -*- -(define-package "commander" "20140120.1852" - "Emacs command line parser." - '((s "1.6.0") - (dash "2.0.0") - (cl-lib "0.3") - (f "0.6.1")) - :url "http://github.com/rejeep/commander.el" - :commit "2c8a57b9c619e29ccbe2d5a85921b9c689e95bf9" - :revdesc "2c8a57b9c619" - :keywords '("cli" "argv") - :authors '(("Johan Andersson" . "johan.rejeep@gmail.com")) - :maintainers '(("Johan Andersson" . "johan.rejeep@gmail.com"))) diff --git a/.cask/30.2/bootstrap/commander-20140120.1852/commander.el b/.cask/30.2/bootstrap/commander-20140120.1852/commander.el deleted file mode 100644 index b8a46ec2..00000000 --- a/.cask/30.2/bootstrap/commander-20140120.1852/commander.el +++ /dev/null @@ -1,513 +0,0 @@ -;;; commander.el --- Emacs command line parser - -;; Copyright (C) 2013 Johan Andersson - -;; Author: Johan Andersson <johan.rejeep@gmail.com> -;; Maintainer: Johan Andersson <johan.rejeep@gmail.com> -;; Package-Version: 20140120.1852 -;; Package-Revision: 2c8a57b9c619 -;; Keywords: cli, argv -;; URL: http://github.com/rejeep/commander.el -;; Package-Requires: ((s "1.6.0") (dash "2.0.0") (cl-lib "0.3") (f "0.6.1")) - -;; This file is NOT part of GNU Emacs. - -;;; License: - -;; 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, 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 GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Code: - - - -(require 'cl-lib) -(require 'f) -(require 's) -(require 'dash) - - - -(cl-defstruct commander-option - "Structure describing an option. - -Slots: - -`flag' The option name (-f, -foo, --foo). - -`description' Description of what the option does. - -`function' Function to run when option used. - -`default-values' Default values to call `function' with if none given. - -`required' Required argument(s). - -`optional' Optional argument(s). - -`zero-or-more' Zero or more arguments allowed or required. - -`one-or-more' One or more arguments allowed or required. - -`to-string' String representation of option." - flag flags description function default-values required optional - zero-or-more one-or-more to-string) - -(cl-defstruct commander-command - "Structure describing a command. - -Slots: - -`command' The command name (foo, foo-bar). - -`description' Description of what the command does. - -`function' Function to run when command used. - -`default-values' Default values to call `function' with if none given. - -`required' Required argument(s). - -`optional' Optional argument(s). - -`zero-or-more' Zero or more arguments allowed or required. - -`one-or-more' One or more arguments allowed or required. - -`to-string' String representation of command." - command description function default-values required optional - zero-or-more one-or-more to-string) - -(cl-defstruct commander-default-command - "Structure describing the default command. - -Slots: - -`command' The name of the default command. - -`arguments' The arguments to use for `command'." - command arguments) - -(cl-defstruct commander-no-command - "Structure describing the no command. - -Slots: - -`function' The function to call when no command. - -`arguments' The arguments to use for `function'." - function arguments) - - - - -(defvar commander-options nil - "List of all options.") - -(defvar commander-commands nil - "List of all commands.") - -(defvar commander-parsing-done nil - "Is parsing done or not.") - -(defvar commander-name nil - "Name of program.") - -(defvar commander-description nil - "Description of program.") - -(defvar commander-default-config nil - "List of default CLI configuration options from config file.") - -(defvar commander-default-command nil - "Command to use when no command parsed.") - -(defvar commander-no-command nil - "Command to use when no command, only options and input.") - -(defvar commander-args nil - "If parse directive is not called explicitly, use this first, then `command-line-args-left'.") - -(defconst commander-option-re - "\\(-[A-Za-z0-9-]\\|--?[A-Za-z0-9][A-Za-z0-9-]+\\)" - "Regex matching an option flag.") - -(defconst commander-command-re - "\\([A-Za-z0-9][A-Za-z0-9-]*\\)" - "Regex matching an command.") - - - -(defun commander--find-option (option) - (-first - (lambda (commander-option) - (equal (commander-option-flag commander-option) option)) - commander-options)) - -(defun commander--find-command (command) - (-first - (lambda (commander-command) - (equal (commander-command-command commander-command) command)) - commander-commands)) - -(defun commander--handle-options (arguments) - (let (rest (i 0)) - (while (< i (length arguments)) - (let ((argument (nth i arguments))) - (if (s-matches? (concat "\\`" commander-option-re "\\'") argument) - (let ((commander-option (commander--find-option argument))) - (if commander-option - (let* ((function (commander-option-function commander-option)) - (default-values (commander-option-default-values commander-option)) - (required (commander-option-required commander-option)) - (optional (commander-option-optional commander-option)) - (zero-or-more (commander-option-zero-or-more commander-option)) - (one-or-more (commander-option-one-or-more commander-option)) - (option-arguments - (when (or required optional) - (if (or (and required one-or-more) (and optional zero-or-more)) - (let (next-arguments) - (while (and (nth (1+ i) arguments) (not (s-matches? (s-concat "\\`" commander-option-re "\\'") (nth (1+ i) arguments)))) - (setq i (1+ i)) - (push (nth i arguments) next-arguments)) - (nreverse next-arguments)) - (when (and (nth (1+ i) arguments) (not (s-matches? (s-concat "\\`" commander-option-re "\\'") (nth (1+ i) arguments)))) - (setq i (1+ i)) - (nth i arguments)))))) - (cond (required - (if option-arguments - (if one-or-more - (apply function option-arguments) - (funcall function option-arguments)) - (if one-or-more - (error "Option `%s` requires at least one argument" argument) - (error "Option `%s` requires argument" argument)))) - (optional - (if zero-or-more - (apply function (or option-arguments default-values)) - (if option-arguments - (funcall function option-arguments) - (apply function default-values)))) - (t (funcall function)))) - (error "Option `%s` not available" argument))) - (push argument rest))) - (setq i (1+ i))) - (nreverse rest))) - -(defun commander--handle-command (arguments) - (let* ((command (car arguments)) - (rest (cdr arguments)) - (commander-command (commander--find-command command))) - (if commander-command - (let ((function (commander-command-function commander-command)) - (default-values (commander-command-default-values commander-command)) - (required (commander-command-required commander-command)) - (optional (commander-command-optional commander-command)) - (zero-or-more (commander-command-zero-or-more commander-command)) - (one-or-more (commander-command-one-or-more commander-command))) - (unless rest - (setq rest default-values)) - (cond (required - (if rest - (apply function rest) - (if one-or-more - (error "Command `%s` requires at least one argument" command) - (error "Command `%s` requires argument" command)))) - (optional - (apply function rest)) - (t - (funcall function)))) - (if commander-no-command - (let ((function (commander-no-command-function commander-no-command))) - (unless arguments - (setq arguments (commander-no-command-arguments commander-no-command))) - (apply function arguments)) - (when command (error "Command `%s` not available" command)))))) - -(defun commander--usage-commands () - (nreverse commander-commands)) - -(defun commander--usage-options () - (let ((-compare-fn - (lambda (option-a option-b) - (string= - (commander-option-to-string option-a) - (commander-option-to-string option-b))))) - (nreverse (-uniq commander-options)))) - - -;;;; Usage - -(defun commander--usage-padding () - (let (max-option (max-option-value 0) max-command (max-command-value 0)) - (--each commander-options - (setq max-option-value (max max-option-value (length (commander-option-to-string it))))) - (--each commander-commands - (setq max-command-value (max max-command-value (length (commander-command-to-string it))))) - (+ (max max-option-value max-command-value) 10))) - -(defun commander--usage-command-or-option (to-string description) - (unless (listp description) - (setq description (list description))) - (let ((padding (commander--usage-padding))) - (s-concat - " " - to-string - (s-repeat (- padding (length to-string)) " ") - (car description) - (s-join - "" - (--map - (s-concat "\n" (s-repeat (1+ padding) " ") it) - (cdr description)))))) - -(defun commander--usage-command (commander-command) - (let ((to-string (commander-command-to-string commander-command)) - (description (commander-command-description commander-command))) - (commander--usage-command-or-option to-string description))) - -(defun commander--usage-option (commander-option) - (let ((to-string (commander-option-to-string commander-option)) - (description (commander-option-description commander-option))) - (commander--usage-command-or-option to-string description))) - -(defun commander-usage () - "Return usage information as a string." - (let ((name (or commander-name (f-filename load-file-name))) - (commands-string - (s-join "\n" (--map (commander--usage-command it) (commander--usage-commands)))) - (options-string - (s-join "\n" (--map (commander--usage-option it) (commander--usage-options))))) - (s-concat - (format "USAGE: %s [COMMAND] [OPTIONS]" name) - (when commander-description - (s-concat "\n\n" commander-description)) - (when commander-commands - (s-concat "\n\nCOMMANDS:\n\n" commands-string)) - (when commander-options - (s-concat "\n\nOPTIONS:\n\n" options-string))))) - -(defun commander-usage-for (command-name) - "Return description for COMMAND-NAME. - -Return value is always a list with one item for each row." - (-if-let (command (commander--find-command command-name)) - (let ((description (commander-command-description command))) - (unless (listp description) - (setq description (list description))) - description) - (error "No such command: %s" command-name))) - -(defun commander-print-usage () - "Print usage information." - (princ (concat (commander-usage) "\n"))) - -(defun commander-print-usage-for (command-name) - "Print usage information for COMMAND-NAME." - (-each (commander-usage-for command-name) - (lambda (row) - (princ (concat row "\n"))))) - -(defun commander-print-usage-and-exit (&optional exit-code) - "Print usage information and exit. - -If EXIT-CODE is specified, with with this code. Default exit -code is 0." - (commander-print-usage) - (kill-emacs (or exit-code 0))) - -(defun commander-print-usage-for-and-exit (command-name &optional exit-code) - "Print usage information for COMMAND-NAME and exit. - -If EXIT-CODE is specified, with with this code. Default exit -code is 0." - (commander-print-usage-for command-name) - (kill-emacs (or exit-code 0))) - - - -(defun commander-option (flags description function &rest default-values) - (let (required optional zero-or-more one-or-more) - (-map - (lambda (flag) - (let ((to-string flags)) - (let ((matches (s-match (concat "\\`" commander-option-re " " "<\\(.+\\)>" "\\'") flag))) - (when matches - (setq flag (nth 1 matches)) - (when (nth 2 matches) - (setq required t) - (if (equal (nth 2 matches) "*") - (setq one-or-more t))))) - (let ((matches (s-match (concat "\\`" commander-option-re " " "\\[\\(.+\\)\\]" "\\'") flag))) - (when matches - (setq flag (nth 1 matches)) - (when (nth 2 matches) - (setq optional t) - (if (equal (nth 2 matches) "*") - (setq zero-or-more t))))) - (add-to-list - 'commander-options - (make-commander-option - :flag flag - :flags flags - :description description - :function function - :default-values default-values - :required required - :optional optional - :zero-or-more zero-or-more - :one-or-more one-or-more - :to-string to-string)))) - (-map 's-trim (s-split "," flags))))) - -(defun commander-command (command description function &rest args) - (let* (required - optional - zero-or-more - one-or-more - (to-string command) - (default-values (-take-while 'stringp args))) - (let ((matches (s-match (concat "\\`" commander-command-re " " "<\\(.+\\)>" "\\'") command))) - (when matches - (setq command (nth 1 matches)) - (when (nth 2 matches) - (setq required t) - (if (equal (nth 2 matches) "*") - (setq one-or-more t))))) - (let ((matches (s-match (concat "\\`" commander-command-re " " "\\[\\(.+\\)\\]" "\\'") command))) - (when matches - (setq command (nth 1 matches)) - (when (nth 2 matches) - (setq optional t) - (if (equal (nth 2 matches) "*") - (setq zero-or-more t))))) - (add-to-list - 'commander-commands - (make-commander-command - :command command - :description description - :function function - :default-values default-values - :required required - :optional optional - :zero-or-more zero-or-more - :one-or-more one-or-more - :to-string to-string)))) - -(defun commander-ignore-p () - "Returns true if parsing should be ignored, false otherwise. - -By setting the variable `commander-ignore' to true, the parsing -will be ignored. This is useful in for example unit tests." - (and (boundp 'commander-ignore) commander-ignore)) - -(defun commander-parse (arguments) - (unless (commander-ignore-p) - (let* ((rest-config (commander--handle-options commander-default-config)) - (rest (or (commander--handle-options arguments) rest-config))) - (unless rest - (if commander-default-command - (let ((command (commander-default-command-command commander-default-command)) - (arguments (commander-default-command-arguments commander-default-command))) - (setq rest (cons command arguments))))) - (commander--handle-command rest)))) - -(defun commander-name (name) - (setq commander-name name)) - -(defun commander-description (description) - (setq commander-description description)) - -(defun commander-config (file) - (when (f-file? file) - (let ((lines (-reject 's-blank? (s-lines (f-read-text file 'utf-8))))) - (setq commander-default-config - (-flatten (--map (s-split " " it) lines)))))) - -(defun commander-default (command-or-function arguments) - (if (stringp command-or-function) - (setq - commander-default-command - (make-commander-default-command - :command command-or-function - :arguments arguments)) - (setq - commander-no-command - (make-commander-no-command - :function command-or-function - :arguments arguments)))) - - - -(defun commander--make-args (args) - "Make proper command/option arguments from ARGS. - -ARGS is the args that are passed to the `command' and `option' -directives. The return value is a list complete list that can be -sent to `commander-command' and `commander-options'. - -If ARGS does not contain documentation, it is fetched from the -function doc string." - (when (functionp (nth 1 args)) - (let ((description - (-if-let (description (documentation (nth 1 args))) - (s-lines description) - ""))) - (setq args (-insert-at 1 description args)))) - args) - -(defmacro commander (&rest forms) - `(progn - (setq commander-default-config nil) - (setq commander-options nil) - (setq commander-commands nil) - (setq commander-name nil) - (setq commander-description nil) - (setq commander-default-command nil) - (setq commander-no-command nil) - (setq commander-parsing-done nil) - (-each - ',forms - (lambda (form) - (cl-case (car form) - (option - (cl-destructuring-bind (_ &rest args) form - (apply 'commander-option (commander--make-args args)))) - (command - (cl-destructuring-bind (_ &rest args) form - (apply 'commander-command (commander--make-args args)))) - (parse - (cl-destructuring-bind (_ arguments) form - (commander-parse arguments) - (setq commander-parsing-done t))) - (name - (cl-destructuring-bind (_ name) form - (commander-name name))) - (description - (cl-destructuring-bind (_ description) form - (commander-description description))) - (config - (cl-destructuring-bind (_ file) form - (commander-config file))) - (default - (cl-destructuring-bind (_ command-or-function &rest arguments) form - (commander-default command-or-function arguments))) - (t (error "Unknown directive: %S" form))))) - (unless commander-parsing-done - (commander-parse (or commander-args (cdr command-line-args-left)))))) - -(provide 'commander) - -;;; commander.el ends here |
