{ "module": "scan", "version": "1", "emits": [ "scan.added" ], "config": { "scanner": { "type": "string", "description": "The network scanner's eSCL address, such as http://192.0.2.10/eSCL: the scanner's own address and the path its eSCL service answers on; the operator's, with no default.", "pattern": "^https?://.+", "trusted": true, "required": true }, "scan-folder": { "type": "string", "description": "The absolute path of the folder the scans are filed in as PDF files; the module makes it when it files the first scan, and never touches a file in it that it did not write. The operator's, with no default.", "pattern": "^/", "trusted": true, "required": true }, "resolution": { "type": "number", "description": "The resolution asked of the scanner, in dpi: 100, 200, 300 or 600. A scanner may give another; the scan is filed at the resolution it gave.", "enum": [ 100, 200, 300, 600 ], "default": 300 }, "color-mode": { "type": "string", "description": "Whether the scan is in colour or in grays: color or gray.", "enum": [ "color", "gray" ], "default": "color" }, "crop": { "type": "boolean", "description": "Whether the document is cut out of the platen's white lid; false files the whole platen.", "default": true } }, "tools": [ "scan_now", "scan_status", "scan_list" ], "resources": [ { "id": "state", "type": "directory", "mode": "0700", "owner": "${machine:account}", "place": ".", "unknown": "program" }, { "id": "settings", "type": "file", "path": "${dir:state}/settings.json", "owner": "${machine:account}", "mode": "0600", "takes-config": [ "scanner", "scan-folder", "resolution", "color-mode", "crop" ], "merge": "json", "template": "files/settings.json" } ], "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/scan", "binary": "scan", "loads": [ "scan" ], "env": { "SCAN_SETTINGS": "${dir:state}/settings.json" } }, { "name": "files", "kind": "archive", "from": "files" } ] } }