diff --git a/src/modules/netinstall/README.md b/src/modules/netinstall/README.md
index f3860254e22a9261bff45c061e1ad5add49b607a..5d199a559174bbc354f3f94f4508555714f72bfd 100644
--- a/src/modules/netinstall/README.md
+++ b/src/modules/netinstall/README.md
@@ -16,11 +16,11 @@ The *netinstall.conf* file should have this format:
 The URL must point to a YAML file. Here is a short example of how the YAML file should look.
 
       - name: "Group name"
-      description: "Description of the group"
-      packages:
-        - lsb-release
-        - avahi
-        - grub
+        description: "Description of the group"
+        packages:
+          - lsb-release
+          - avahi
+          - grub
       - name: "Second group name"
       ...
 
@@ -37,6 +37,12 @@ More keys are supported:
       - subgroups: if present this follows the same structure as the top level
         of the YAML file, allowing there to be sub-groups of packages to an
         arbitary depth
+      - pre-install: an optional command to run within the new system before
+        the group's packages are installed. It will run before each package in
+        the group is installed.
+      - post-install: an optional command to run within the new system after
+        the group's packages are installed. It will run after each package in
+        the group is installed.
 
 If you set both *hidden* and *selected* for a group, you are basically creating a "default" group of packages
 which will always be installed in the user's system.
diff --git a/src/modules/packages/test.yaml b/src/modules/packages/test.yaml
index ba84cddc9a0bac92f0d48bdbcf3c5b99bc3c9dbd..345172622123558c38ab1f32621c959fa534c7c6 100644
--- a/src/modules/packages/test.yaml
+++ b/src/modules/packages/test.yaml
@@ -1,6 +1,10 @@
 rootMountPoint: /tmp/mount
 packageOperations:
   - install:
-    - vi
+    - pre-script: touch /tmp/foo
+      package: vi
+      post-script: rm /tmp/foo
+    - wget
   - remove:
     - vi
+    - wget