diff --git a/ordo/cli/run.scm b/ordo/cli/run.scm
index 98f31bf..1b46d6b 100644
--- a/ordo/cli/run.scm
+++ b/ordo/cli/run.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo cli run)
#:use-module (config)
#:use-module (config api)
diff --git a/ordo/connection.scm b/ordo/connection.scm
index 2cda66f..8046bcf 100644
--- a/ordo/connection.scm
+++ b/ordo/connection.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo connection)
#:use-module (ice-9 exceptions)
#:use-module (oop goops)
diff --git a/ordo/connection/base.scm b/ordo/connection/base.scm
index daedcca..6803f20 100644
--- a/ordo/connection/base.scm
+++ b/ordo/connection/base.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo connection base)
#:use-module (ice-9 match)
#:use-module (oop goops)
diff --git a/ordo/connection/local.scm b/ordo/connection/local.scm
index 7eb9eb7..c4d39ae 100644
--- a/ordo/connection/local.scm
+++ b/ordo/connection/local.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo connection local)
#:use-module (ice-9 popen)
#:use-module (oop goops)
diff --git a/ordo/connection/ssh.scm b/ordo/connection/ssh.scm
index c71f2d4..2b2d2e6 100644
--- a/ordo/connection/ssh.scm
+++ b/ordo/connection/ssh.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo connection ssh)
#:use-module (oop goops)
#:use-module (ice-9 exceptions)
diff --git a/ordo/connection/sudo.scm b/ordo/connection/sudo.scm
index ccb3732..8271c22 100644
--- a/ordo/connection/sudo.scm
+++ b/ordo/connection/sudo.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo connection sudo)
#:use-module (oop goops)
#:use-module (ice-9 exceptions)
@@ -19,13 +36,13 @@
(define-method (setup (conn ))
(when (become-password conn)
- (let ((out rc (exec conn "mktemp")))
+ (let ((out rc (remote-exec conn "mktemp")))
(unless (zero? rc)
(raise-exception (make-exception
(make-external-error)
(make-exception-with-message (format #f "Failed to create temporary directory: ~a" (car out))))))
(let ((tmp-file (car out)))
- (call-with-output-file conn tmp-file (cut write-line (become-password conn) <>))
+ (with-remote-output-file conn tmp-file (cut write-line (become-password conn) <>))
(set! (password-tmp-file conn) tmp-file)))))
(define-method (build-command (conn ) (prog-name ) (prog-args ) (options ))
@@ -46,4 +63,4 @@
(define-method (teardown (conn ))
(when (slot-bound? conn 'password-tmp-file)
- (exec conn (format #f "rm -f ~a" (string-shell-quote (password-tmp-file conn))))))
+ (remote-exec conn (format #f "rm -f ~a" (string-shell-quote (password-tmp-file conn))))))
diff --git a/ordo/context.scm b/ordo/context.scm
index a10ff0a..ff150a0 100644
--- a/ordo/context.scm
+++ b/ordo/context.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo context)
#:use-module (srfi srfi-69))
diff --git a/ordo/inventory.scm b/ordo/inventory.scm
index 468ff30..669ed8e 100644
--- a/ordo/inventory.scm
+++ b/ordo/inventory.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo inventory)
#:use-module (ice-9 eval-string)
#:use-module (ice-9 match)
diff --git a/ordo/logger.scm b/ordo/logger.scm
index a4b6927..b2aed69 100644
--- a/ordo/logger.scm
+++ b/ordo/logger.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo logger)
#:use-module (oop goops)
#:use-module ((srfi srfi-1) #:select (take-while member))
diff --git a/ordo/play.scm b/ordo/play.scm
index 61c32c5..ba08ee2 100644
--- a/ordo/play.scm
+++ b/ordo/play.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo play)
#:use-module (oop goops)
#:use-module (ordo connection)
diff --git a/ordo/playbook.scm b/ordo/playbook.scm
index cdae7bb..44df6a7 100644
--- a/ordo/playbook.scm
+++ b/ordo/playbook.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo playbook)
#:use-module (ice-9 eval-string)
#:use-module (ice-9 textual-ports)
diff --git a/ordo/util/flatten.scm b/ordo/util/flatten.scm
index a37c788..944c070 100644
--- a/ordo/util/flatten.scm
+++ b/ordo/util/flatten.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo util flatten)
#:export (flatten))
diff --git a/ordo/util/keyword-args.scm b/ordo/util/keyword-args.scm
index 76441c1..e194140 100644
--- a/ordo/util/keyword-args.scm
+++ b/ordo/util/keyword-args.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo util keyword-args)
#:use-module (ice-9 exceptions)
#:export (keyword-arg
diff --git a/ordo/util/read-lines.scm b/ordo/util/read-lines.scm
index def581d..1979ec3 100644
--- a/ordo/util/read-lines.scm
+++ b/ordo/util/read-lines.scm
@@ -1,3 +1,20 @@
+#|
+This file is part of Ordo.
+
+Copyright (C) 2025 Ray Miller
+
+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, version 3.
+
+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 .
+|#
+
(define-module (ordo util read-lines)
#:use-module (ice-9 rdelim)
#:export (read-lines))
diff --git a/ordo/util/shell-quote.scm b/ordo/util/shell-quote.scm
index 5de60fa..dcfbcf4 100644
--- a/ordo/util/shell-quote.scm
+++ b/ordo/util/shell-quote.scm
@@ -1,21 +1,23 @@
-;; This file is part of Ordo.
-;;
-;; Shell quoting implementation is based on Perl's String::ShellQuote
-;; Copyright (c) 1997 Roderick Schertler.
-;;
-;; Guile implementation Copyright (c) 2025 Ray Miller.
-;;
-;; Ordo 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.
-;;
-;; Ordo 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
-;; Ordo. If not, see .
+#|
+This file is part of Ordo.
+
+Shell quoting implementation is based on Perl's String::ShellQuote
+Copyright (c) 1997 Roderick Schertler.
+
+Guile implementation Copyright (c) 2025 Ray Miller.
+
+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 .
+|#
(define-module (ordo util shell-quote)
#:use-module (rx irregex)