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 6 years ago
commit 0f0bae0235

@ -4,16 +4,22 @@ $id: https://calamares.io/schemas/fstab
additionalProperties: false additionalProperties: false
type: object type: object
properties: properties:
"mountOptions": mountOptions:
type: map type: object
mapping: additionalProperties: true # we don't know which FS exist
"default": { type: string, required: true } properties:
"btrfs": { type: string, required: true } default: { type: string }
"ssdExtraMountOptions": btrfs: { type: string }
type: map required: [ default ]
mapping: ssdExtraMountOptions:
"ext4": { type: string, required: true } type: object
"jfs": { type: string, required: true } additionalProperties: true # we don't know which FS exist
"xfs": { type: string, required: true } properties:
"swap": { type: string, required: true } ext4: { type: string }
"btrfs": { type: string, required: true } 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 additionalProperties: false
type: object type: object
properties: 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# $schema: https://json-schema.org/schema#
$id: https://calamares.io/schemas/finished $id: https://calamares.io/schemas/finished
additionalProperties: keyboard additionalProperties: false
type: object type: object
properties: properties:
xOrgConfFileName: { type: string, required: true } xOrgConfFileName: { type: string }
convertedKeymapPath: { type: string, required: true } convertedKeymapPath: { type: string }
writeEtcDefaultKeyboard: { type: boolean, default: true }
required: [ xOrgConfFileName, convertedKeymapPath ]

@ -4,14 +4,16 @@ $id: https://calamares.io/schemas/license
additionalProperties: false additionalProperties: false
type: object type: object
properties: properties:
"entries": entries:
type: seq type: array
sequence: items:
- type: map type: object
mapping: additionalProperties: false
"id": { type: str } properties:
"name": { type: str } id: { type: string }
"vendor": { type: str } name: { type: string }
"type": { type: str } vendor: { type: string }
"url": { type: str } type: { type: string }
"required": { type: boolean, default: false } 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 additionalProperties: false
type: object type: object
properties: properties:
"configFilePath": { type: string, required: true } configFilePath: { type: string }
required: [ configFilePath ]

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

@ -4,4 +4,5 @@ $id: https://calamares.io/schemas/removeuser
additionalProperties: false additionalProperties: false
type: object type: object
properties: 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 # 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 # 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 # is possible to copy files to the target system.
# copy an installation log. #
# The "copy log files" functionality is deprecated; use the *preservefiles*
# module instead, which is more flexible.
# #
# This module has two configuration keys: # This module has two configuration keys:
# srcLog location in the live system where the log is # srcLog location in the live system where the log is
# destLog location in the target system to copy the log # 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: # example when using the normal Calamares log:

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

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

Loading…
Cancel
Save