Merge branch 'schema' into calamares

All of the schemata are now valid JSON-schema files, and all of
the example config files validate against those schema files.
main
Adriaan de Groot 4 years ago
commit 0f0bae0235

@ -4,16 +4,22 @@ $id: https://calamares.io/schemas/fstab
additionalProperties: false
type: object
properties:
"mountOptions":
type: map
mapping:
"default": { type: string, required: true }
"btrfs": { type: string, required: true }
"ssdExtraMountOptions":
type: map
mapping:
"ext4": { type: string, required: true }
"jfs": { type: string, required: true }
"xfs": { type: string, required: true }
"swap": { type: string, required: true }
"btrfs": { type: string, required: true }
mountOptions:
type: object
additionalProperties: true # we don't know which FS exist
properties:
default: { type: string }
btrfs: { type: string }
required: [ default ]
ssdExtraMountOptions:
type: object
additionalProperties: true # we don't know which FS exist
properties:
ext4: { type: string }
jfs: { type: string }
xfs: { type: string }
swap: { type: string }
btrfs: { type: string }
efiMountOptions: { type: string }
crypttabOptions: { type: string }
required: [ mountOptions ]

@ -4,4 +4,6 @@ $id: https://calamares.io/schemas/initcpio
additionalProperties: false
type: object
properties:
kernel: { type: string, required: true }
kernel: { type: string }
be_unsafe: { type: boolean, default: false }
required: [ kernel ]

@ -1,8 +1,10 @@
---
$schema: https://json-schema.org/schema#
$id: https://calamares.io/schemas/finished
additionalProperties: keyboard
additionalProperties: false
type: object
properties:
xOrgConfFileName: { type: string, required: true }
convertedKeymapPath: { type: string, required: true }
xOrgConfFileName: { type: string }
convertedKeymapPath: { type: string }
writeEtcDefaultKeyboard: { type: boolean, default: true }
required: [ xOrgConfFileName, convertedKeymapPath ]

@ -4,14 +4,16 @@ $id: https://calamares.io/schemas/license
additionalProperties: false
type: object
properties:
"entries":
type: seq
sequence:
- type: map
mapping:
"id": { type: str }
"name": { type: str }
"vendor": { type: str }
"type": { type: str }
"url": { type: str }
"required": { type: boolean, default: false }
entries:
type: array
items:
type: object
additionalProperties: false
properties:
id: { type: string }
name: { type: string }
vendor: { type: string }
type: { type: string }
url: { type: string }
required: { type: boolean, default: false }
expand: { type: boolean, default: false }

@ -4,4 +4,5 @@ $id: https://calamares.io/schemas/luksopenswaphookcfg
additionalProperties: false
type: object
properties:
"configFilePath": { type: string, required: true }
configFilePath: { type: string }
required: [ configFilePath ]

@ -4,21 +4,26 @@ $id: https://calamares.io/schemas/mount
additionalProperties: false
type: object
properties:
"extraMounts":
type: seq
sequence:
- type: map
mapping:
"device": { type: string, required: true }
"fs": { type: str }
"mountPoint": { type: string, required: true }
"options": { type: str }
"extraMountsEfi":
type: seq
sequence:
- type: map
mapping:
"device": { type: string, required: true }
"fs": { type: str }
"mountPoint": { type: string, required: true }
"options": { type: str }
# TODO: share the schema definition, since these are identical
extraMounts:
type: array
items:
type: object
additionalProperties: false
properties:
device: { type: string }
fs: { type: string }
mountPoint: { type: string }
options: { type: string }
required: [ device, mountPoint ]
extraMountsEfi:
type: array
items:
type: object
additionalProperties: false
properties:
device: { type: string }
fs: { type: string }
mountPoint: { type: string }
options: { type: string }
required: [ device, mountPoint ]

@ -4,4 +4,13 @@ $id: https://calamares.io/schemas/netinstall
additionalProperties: false
type: object
properties:
groupsUrl: { type: string, required: true }
groupsUrl: { type: string }
required: { type: boolean, default: false }
label: # Translatable labels
type: object
additionalProperties: true
properties:
sidebar: { type: string }
title: { type: string }
groups: { type: array } # TODO: the schema for the whole groups file
required: [ groupsUrl ]

@ -4,4 +4,4 @@ $id: https://calamares.io/schemas/plymouthcfg
additionalProperties: false
type: object
properties:
plymouth_theme: { type: str }
plymouth_theme: { type: string }

@ -4,4 +4,5 @@ $id: https://calamares.io/schemas/removeuser
additionalProperties: false
type: object
properties:
"username": { type: string, required: true }
username: { type: string }
required: [ username ]

@ -2,35 +2,15 @@
#
# This module represents the last part of the installation, the unmounting
# of partitions used for the install. It is also the last place where it
# is possible to copy files to the target system, thus the best place to
# copy an installation log.
# is possible to copy files to the target system.
#
# The "copy log files" functionality is deprecated; use the *preservefiles*
# module instead, which is more flexible.
#
# This module has two configuration keys:
# srcLog location in the live system where the log is
# destLog location in the target system to copy the log
#
# You can either use the default source path (which is
# `/root/.cache/calamares/session.log` ) to copy the regular log,
# or if you want to use the full output of `sudo calamares -d` you will need
# to redirect standard output, for instance in a launcher script or
# in the desktop file.
#
# Example launcher script:
#
# ```
# #!/bin/sh
# sudo /usr/bin/calamares -d > installation.log
# ```
#
# Example desktop line:
#
# ```
# Exec=sudo /usr/bin/calamares -d > installation.log
# ```
#
# If no source and destination are set, no copy is attempted. If the
# copy fails for some reason, a warning is printed but the installation
# does not fail.
---
# example when using the normal Calamares log:

@ -4,5 +4,5 @@ $id: https://calamares.io/schemas/umount
additionalProperties: false
type: object
properties:
"srcLog": { type: str }
"destLog": { type: str }
srcLog: { type: string }
destLog: { type: string }

@ -4,11 +4,15 @@ $id: https://calamares.io/schemas/unpackfs
additionalProperties: false
type: object
properties:
"unpack":
type: seq
sequence:
- type: map
mapping:
"source": { type: string, required: true }
"sourcefs": { type: str }
"destination": { type: str }
unpack:
type: array
items:
type: object
additionalProperties: false
properties:
source: { type: string }
sourcefs: { type: string }
destination: { type: string }
excludeFile: { type: string }
exclude: { type: array, items: { type: string } }
required: [ source , sourcefs, destination ]

Loading…
Cancel
Save