ghostwheel - virtual infrastructure controller

Table of Contents

"Restate the problem in terms of the solution." -variously attributed

1. Capabilities

  • [ ] instrumentation and controls
  • [ ] host and application status
    • [ ] aggregate and per host graphs for uptime/downtime and load
    • [ ] application service aggregate uptime/downtime and load
    • [ ] stop/restart/stop/rebuild controls
  • [ ] authoritative program source, documentation, licensing, etc. collection
  • [-] development and build automation

2. TODO State

Inject current machine, project, etc. status right here..

3. TODO Licensing and Documentation

Render some top-level documentation right here…

4. TODO Programs

List the various programs right here…

5. INPROGRESS Development

This section contains tools useful when developing ghostwheel (the system implemented and described by this document).

5.1. TODO Makefile

Encapsulate and orchestrate all integration tasks using Makefile (autoconf, etc. as needed).

5.2. TODO URI sourcing

Update document sections and blocks and collect source files and source fragments based on URI schemes

5.3. TODO iterate tangling and export while sourcing

5.4. DONE HTML rendering

To render HTML from this document place your cursor (point, in Emacs terms) into the code below and press C-c C-c (control+c, twice).

(org-html-export-to-html)

5.5. DONE Project source rendering

To render project sources from this document place your cursor (point, in Emacs terms) into the code below and press C-c C-c (control+c, twice).

(org-babel-tangle)

6. INPROGRESS Integration (in shell)

These programs run from the command line and shell-scripts.

6.1. TODO version control sourcing

Update document sections and blocks and collect source files and source fragments from version control systems.

6.2. TODO start.sh

Start or stop an application, program, system, host, etc.

6.3. DONE build.sh

#!/usr/bin/sh
emacs --batch -l build.el

6.4. DONE tangle-README.sh

#!/usr/bin/sh
emacs --batch -eval '(progn (setopt org-safe-remote-resources '"'"'("\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-readtheorg\\.setup\\'"'"'" "\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-bigblow\\.setup\\'"'"'")) (find-file "README.org") (org-babel-tangle))'

6.5. DONE build.el

;;; build.el --- build README.md from README.org     -*- lexical-binding: t; -*-
;; Author: Corwin Brust <corwin@bru.st>
;; 
;;; Commentary:

;; tangle sources then build README.{md,html,txt} from README.org

;;; Code:

(require 'ox-md)  ;; maybe something to install ox-md from MELPA?
(require 'htmlize "/var/c2e2/orgvm/site-lisp/htmlize/htmlize.el" t)

(setopt org-safe-remote-resources
        '("\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-readtheorg\\.setup\\'"
          "\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-bigblow\\.setup\\'"))
(org-babel-do-load-languages
 'org-babel-load-languages
 '((C     . t)
   (ditaa . t)
   (dot   . t)
   ;; (http  . t) ; local source
   (emacs-lisp . t)
   (latex . t)
   ;(ruby . t)
   (js    . t)
   (perl  . t)
   (plantuml . t)
   (shell . t)
   ;; (typescript . t) ; not always loaded
   ))
(save-excursion
  (find-file "README.org")
  (org-babel-tangle)
  (org-md-export-to-markdown)
  (org-html-export-to-html)
  ;;(org-latex-export-to-pdf) ;; ugly, omit for now
  (org-ascii-export-to-ascii))

(provide 'build)
;;; build.el ends here

7. Boilerplate

The "Sh-bang" line helps the operation system launch the right interpreter.

#!/usr/bin/env perl
# 

This additional "boilerplate" (or "standard text") which identifies the author and designates the program as free software by specifying a free software license (the GNU Public License).

Copyright 2025 Corwin Brust <corwin@bru.st>

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/.

Author: Corwin Brust

Created: 2025-08-10 Sun 23:50

Validate