mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-22 10:46:31 +00:00
feat(sdk): Consolidate low-level components into SDK
Changes: - Split out scanner into own file - Move `lib/shared/sdk` -> `lib/sdk` - Move `lib/image-stream` -> `lib/sdk/image-stream` - Move `lib/writer` -> `lib/sdk/writer` - Rename `sdk/standard` -> `sdk/blockdevice` - Move adapters into `sdk/adapters` subdirectory Change-Type: minor Changelog-Entry: Consolidate low-level components into Etcher SDK
This commit is contained in:
parent
4fa0f990e5
commit
7c9f15d8a9
@ -22,10 +22,10 @@ const fs = Bluebird.promisifyAll(require('fs'))
|
|||||||
const mountutils = Bluebird.promisifyAll(require('mountutils'))
|
const mountutils = Bluebird.promisifyAll(require('mountutils'))
|
||||||
const drivelist = Bluebird.promisifyAll(require('drivelist'))
|
const drivelist = Bluebird.promisifyAll(require('drivelist'))
|
||||||
const os = require('os')
|
const os = require('os')
|
||||||
const imageStream = require('../image-stream')
|
const imageStream = require('../sdk/image-stream')
|
||||||
const errors = require('../shared/errors')
|
const errors = require('../shared/errors')
|
||||||
const constraints = require('../shared/drive-constraints')
|
const constraints = require('../shared/drive-constraints')
|
||||||
const ImageWriter = require('../writer')
|
const ImageWriter = require('../sdk/writer')
|
||||||
const diskpart = require('./diskpart')
|
const diskpart = require('./diskpart')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,7 +21,7 @@ const Bluebird = require('bluebird')
|
|||||||
const fs = Bluebird.promisifyAll(require('fs'))
|
const fs = Bluebird.promisifyAll(require('fs'))
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const settings = require('../models/settings')
|
const settings = require('../models/settings')
|
||||||
const SDK = require('../../../shared/sdk')
|
const SDK = require('../../../sdk')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary The Etcher "blobs" directory path
|
* @summary The Etcher "blobs" directory path
|
||||||
@ -31,7 +31,7 @@ const SDK = require('../../../shared/sdk')
|
|||||||
const BLOBS_DIRECTORY = path.join(__dirname, '..', '..', 'blobs')
|
const BLOBS_DIRECTORY = path.join(__dirname, '..', '..', 'blobs')
|
||||||
|
|
||||||
const scanner = SDK.createScanner({
|
const scanner = SDK.createScanner({
|
||||||
standard: {
|
blockdevice: {
|
||||||
get includeSystemDrives () {
|
get includeSystemDrives () {
|
||||||
return settings.get('unsafeMode')
|
return settings.get('unsafeMode')
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ const Bluebird = require('bluebird')
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const messages = require('../../../../../shared/messages')
|
const messages = require('../../../../../shared/messages')
|
||||||
const errors = require('../../../../../shared/errors')
|
const errors = require('../../../../../shared/errors')
|
||||||
const imageStream = require('../../../../../image-stream')
|
const imageStream = require('../../../../../sdk/image-stream')
|
||||||
const supportedFormats = require('../../../../../shared/supported-formats')
|
const supportedFormats = require('../../../../../shared/supported-formats')
|
||||||
const analytics = require('../../../modules/analytics')
|
const analytics = require('../../../modules/analytics')
|
||||||
const selectionState = require('../../../../../shared/models/selection-state')
|
const selectionState = require('../../../../../shared/models/selection-state')
|
||||||
|
@ -22,15 +22,15 @@ const EventEmitter = require('events')
|
|||||||
const drivelist = Bluebird.promisifyAll(require('drivelist'))
|
const drivelist = Bluebird.promisifyAll(require('drivelist'))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary StandardAdapter
|
* @summary BlockDeviceAdapter
|
||||||
* @class
|
* @class
|
||||||
*/
|
*/
|
||||||
class StandardAdapter extends EventEmitter {
|
class BlockDeviceAdapter extends EventEmitter {
|
||||||
/**
|
/**
|
||||||
* @summary StandardAdapter constructor
|
* @summary BlockDeviceAdapter constructor
|
||||||
* @class
|
* @class
|
||||||
* @example
|
* @example
|
||||||
* const adapter = new StandardAdapter()
|
* const adapter = new BlockDeviceAdapter()
|
||||||
*/
|
*/
|
||||||
constructor () {
|
constructor () {
|
||||||
super()
|
super()
|
||||||
@ -51,7 +51,7 @@ class StandardAdapter extends EventEmitter {
|
|||||||
* @param {Object} [options] - options
|
* @param {Object} [options] - options
|
||||||
* @param {Object} [options.includeSystemDrives=false] - include system drives
|
* @param {Object} [options.includeSystemDrives=false] - include system drives
|
||||||
* @param {Function} [callback] - optional callback
|
* @param {Function} [callback] - optional callback
|
||||||
* @returns {StandardAdapter}
|
* @returns {BlockDeviceAdapter}
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* adapter.scan({
|
* adapter.scan({
|
||||||
@ -101,7 +101,7 @@ class StandardAdapter extends EventEmitter {
|
|||||||
* @type {String}
|
* @type {String}
|
||||||
* @constant
|
* @constant
|
||||||
*/
|
*/
|
||||||
StandardAdapter.id = 'standard'
|
BlockDeviceAdapter.id = 'blockdevice'
|
||||||
|
|
||||||
// Exports
|
// Exports
|
||||||
module.exports = StandardAdapter
|
module.exports = BlockDeviceAdapter
|
46
lib/sdk/adapters/index.js
Normal file
46
lib/sdk/adapters/index.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 resin.io
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
const _ = require('lodash')
|
||||||
|
const os = require('os')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary The list of loaded adapters
|
||||||
|
* @type {Object[]}
|
||||||
|
* @constant
|
||||||
|
*/
|
||||||
|
const ADAPTERS = [
|
||||||
|
require('./blockdevice')
|
||||||
|
]
|
||||||
|
|
||||||
|
// We don't support usbboot on GNU/Linux yet, given
|
||||||
|
// that some distributions require root permissions
|
||||||
|
// to open USB devices.
|
||||||
|
if (os.platform() !== 'linux') {
|
||||||
|
ADAPTERS.push(require('./usbboot'))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary Initialised adapters
|
||||||
|
* @type {Object<String,Adapter>}
|
||||||
|
* @constant
|
||||||
|
*/
|
||||||
|
module.exports = _.reduce(ADAPTERS, (adapters, Adapter) => {
|
||||||
|
adapters[Adapter.id] = new Adapter()
|
||||||
|
return adapters
|
||||||
|
}, {})
|
@ -27,7 +27,7 @@ const Bluebird = require('bluebird')
|
|||||||
const debug = require('debug')('sdk:usbboot')
|
const debug = require('debug')('sdk:usbboot')
|
||||||
const usb = require('./usb')
|
const usb = require('./usb')
|
||||||
const protocol = require('./protocol')
|
const protocol = require('./protocol')
|
||||||
const utils = require('../../utils')
|
const utils = require('../../../shared/utils')
|
||||||
|
|
||||||
debug.enabled = true
|
debug.enabled = true
|
||||||
|
|
@ -20,7 +20,7 @@ const Bluebird = require('bluebird')
|
|||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const StreamZip = require('node-stream-zip')
|
const StreamZip = require('node-stream-zip')
|
||||||
const yauzl = Bluebird.promisifyAll(require('yauzl'))
|
const yauzl = Bluebird.promisifyAll(require('yauzl'))
|
||||||
const errors = require('../../shared/errors')
|
const errors = require('../../../shared/errors')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary Get all archive entries
|
* @summary Get all archive entries
|
@ -21,8 +21,8 @@ const _ = require('lodash')
|
|||||||
const PassThroughStream = require('stream').PassThrough
|
const PassThroughStream = require('stream').PassThrough
|
||||||
const supportedFileTypes = require('./supported')
|
const supportedFileTypes = require('./supported')
|
||||||
const utils = require('./utils')
|
const utils = require('./utils')
|
||||||
const errors = require('../shared/errors')
|
const errors = require('../../shared/errors')
|
||||||
const fileExtensions = require('../shared/file-extensions')
|
const fileExtensions = require('../../shared/file-extensions')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary Archive metadata base path
|
* @summary Archive metadata base path
|
@ -29,9 +29,9 @@ const udif = Bluebird.promisifyAll(require('udif'))
|
|||||||
const archive = require('./archive')
|
const archive = require('./archive')
|
||||||
const utils = require('./utils')
|
const utils = require('./utils')
|
||||||
const zipArchiveHooks = require('./archive-hooks/zip')
|
const zipArchiveHooks = require('./archive-hooks/zip')
|
||||||
const fileExtensions = require('../shared/file-extensions')
|
const fileExtensions = require('../../shared/file-extensions')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const errors = require('../shared/errors')
|
const errors = require('../../shared/errors')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary Default image extension to be assumed
|
* @summary Default image extension to be assumed
|
@ -23,7 +23,7 @@ const stream = require('stream')
|
|||||||
const mime = require('./mime')
|
const mime = require('./mime')
|
||||||
const handlers = require('./handlers')
|
const handlers = require('./handlers')
|
||||||
const supportedFileTypes = require('./supported')
|
const supportedFileTypes = require('./supported')
|
||||||
const errors = require('../shared/errors')
|
const errors = require('../../shared/errors')
|
||||||
const parsePartitions = require('./parse-partitions')
|
const parsePartitions = require('./parse-partitions')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,7 +54,7 @@ const parsePartitions = require('./parse-partitions')
|
|||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* const imageStream = require('./lib/image-stream');
|
* const imageStream = require('./lib/sdk/image-stream');
|
||||||
*
|
*
|
||||||
* imageStream.getFromFilePath('path/to/rpi.img.xz').then((image) => {
|
* imageStream.getFromFilePath('path/to/rpi.img.xz').then((image) => {
|
||||||
* console.log(`The image display name is: ${image.name}`);
|
* console.log(`The image display name is: ${image.name}`);
|
||||||
@ -106,7 +106,7 @@ exports.getFromFilePath = (file) => {
|
|||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* const imageStream = require('./lib/image-stream');
|
* const imageStream = require('./lib/sdk/image-stream');
|
||||||
*
|
*
|
||||||
* imageStream.getImageMetadata('path/to/rpi.img.xz').then((metadata) => {
|
* imageStream.getImageMetadata('path/to/rpi.img.xz').then((metadata) => {
|
||||||
* console.log(`The image display name is: ${metadata.name}`);
|
* console.log(`The image display name is: ${metadata.name}`);
|
||||||
@ -131,7 +131,7 @@ exports.getImageMetadata = (file) => {
|
|||||||
* @public
|
* @public
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* const imageStream = require('./lib/image-stream');
|
* const imageStream = require('./lib/sdk/image-stream');
|
||||||
*
|
*
|
||||||
* imageStream.supportedFileTypes.forEach((fileType) => {
|
* imageStream.supportedFileTypes.forEach((fileType) => {
|
||||||
* console.log('Supported file type: ' + fileType.extension);
|
* console.log('Supported file type: ' + fileType.extension);
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
const Bluebird = require('bluebird')
|
const Bluebird = require('bluebird')
|
||||||
const fs = Bluebird.promisifyAll(require('fs'))
|
const fs = Bluebird.promisifyAll(require('fs'))
|
||||||
const errors = require('../shared/errors')
|
const errors = require('../../shared/errors')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @summary Read a buffer from an image file descriptor
|
* @summary Read a buffer from an image file descriptor
|
47
lib/sdk/index.js
Normal file
47
lib/sdk/index.js
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2017 resin.io
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
const SDK = module.exports
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary Initialised adapters
|
||||||
|
* @type {Object<String,Adapter>}
|
||||||
|
* @constant
|
||||||
|
*/
|
||||||
|
SDK.adapters = require('./adapters')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adapter Scanner
|
||||||
|
* @see scanner.js
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
SDK.Scanner = require('./scanner')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @summary Create a new Scanner
|
||||||
|
* @param {Object} [options] - options
|
||||||
|
* @returns {SDK.Scanner}
|
||||||
|
* @example
|
||||||
|
* SDK.createScanner({
|
||||||
|
* blockdevice: { ... },
|
||||||
|
* usbboot: { ... }
|
||||||
|
* })
|
||||||
|
*/
|
||||||
|
SDK.createScanner = (options) => {
|
||||||
|
return new SDK.Scanner(options)
|
||||||
|
}
|
@ -16,54 +16,28 @@
|
|||||||
|
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const EventEmitter = require('events')
|
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const SDK = module.exports
|
const EventEmitter = require('events')
|
||||||
const debug = require('debug')('sdk')
|
const debug = require('debug')('sdk:scanner')
|
||||||
const os = require('os')
|
const SDK = require('./')
|
||||||
|
|
||||||
debug.enabled = true
|
debug.enabled = true
|
||||||
|
|
||||||
/**
|
|
||||||
* @summary The list of loaded adapters
|
|
||||||
* @type {Object[]}
|
|
||||||
* @constant
|
|
||||||
*/
|
|
||||||
const ADAPTERS = [
|
|
||||||
require('./standard')
|
|
||||||
]
|
|
||||||
|
|
||||||
// We don't support usbboot on GNU/Linux yet, given
|
|
||||||
// that some distributions require root permissions
|
|
||||||
// to open USB devices.
|
|
||||||
if (os.platform() !== 'linux') {
|
|
||||||
ADAPTERS.push(require('./usbboot'))
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @summary Initialised adapters
|
|
||||||
* @type {Object<String,Adapter>}
|
|
||||||
* @constant
|
|
||||||
*/
|
|
||||||
SDK.adapters = _.reduce(ADAPTERS, (adapters, Adapter) => {
|
|
||||||
adapters[Adapter.id] = new Adapter()
|
|
||||||
return adapters
|
|
||||||
}, {})
|
|
||||||
|
|
||||||
/* eslint-disable lodash/prefer-lodash-method */
|
/* eslint-disable lodash/prefer-lodash-method */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adapter Scanner
|
* Adapter Scanner
|
||||||
* @class Scanner
|
* @class Scanner
|
||||||
|
* @memberOf SDK
|
||||||
*/
|
*/
|
||||||
SDK.Scanner = class Scanner extends EventEmitter {
|
class Scanner extends EventEmitter {
|
||||||
/**
|
/**
|
||||||
* @summary Adapter Scanner constructor
|
* @summary Adapter Scanner constructor
|
||||||
* @param {Object<String,Object>} [options] - device adapter options
|
* @param {Object<String,Object>} [options] - device adapter options
|
||||||
* @param {Object} [options.adapters] - map of external device adapters
|
* @param {Object} [options.adapters] - map of external device adapters
|
||||||
* @example
|
* @example
|
||||||
* new SDK.Scanner({
|
* new Scanner({
|
||||||
* standard: { ... },
|
* blockdevice: { ... },
|
||||||
* usbboot: { ... }
|
* usbboot: { ... }
|
||||||
* })
|
* })
|
||||||
*/
|
*/
|
||||||
@ -133,7 +107,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
|||||||
/**
|
/**
|
||||||
* @summary Start scanning for devices
|
* @summary Start scanning for devices
|
||||||
* @public
|
* @public
|
||||||
* @returns {SDK.Scanner}
|
* @returns {Scanner}
|
||||||
* @example
|
* @example
|
||||||
* scanner.start()
|
* scanner.start()
|
||||||
*/
|
*/
|
||||||
@ -156,7 +130,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
|||||||
const runScan = () => {
|
const runScan = () => {
|
||||||
adapter.scan(options, () => {
|
adapter.scan(options, () => {
|
||||||
if (this.isScanning) {
|
if (this.isScanning) {
|
||||||
setTimeout(runScan, SDK.Scanner.MIN_SCAN_DELAY)
|
setTimeout(runScan, Scanner.MIN_SCAN_DELAY)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -177,7 +151,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
|||||||
/**
|
/**
|
||||||
* @summary Stop scanning for devices
|
* @summary Stop scanning for devices
|
||||||
* @public
|
* @public
|
||||||
* @returns {SDK.Scanner}
|
* @returns {Scanner}
|
||||||
* @example
|
* @example
|
||||||
* scanner.stop()
|
* scanner.stop()
|
||||||
*/
|
*/
|
||||||
@ -202,7 +176,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
|||||||
* @summary Subscribe to an adapter
|
* @summary Subscribe to an adapter
|
||||||
* @public
|
* @public
|
||||||
* @param {Adapter} adapter - device adapter
|
* @param {Adapter} adapter - device adapter
|
||||||
* @returns {SDK.Scanner}
|
* @returns {Scanner}
|
||||||
* @example
|
* @example
|
||||||
* scanner.subscribe(adapter)
|
* scanner.subscribe(adapter)
|
||||||
*/
|
*/
|
||||||
@ -223,7 +197,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
|||||||
* @summary Unsubscribe from an adapter
|
* @summary Unsubscribe from an adapter
|
||||||
* @public
|
* @public
|
||||||
* @param {Adapter} adapter - device adapter
|
* @param {Adapter} adapter - device adapter
|
||||||
* @returns {SDK.Scanner}
|
* @returns {Scanner}
|
||||||
* @example
|
* @example
|
||||||
* scanner.unsubscribe(adapter)
|
* scanner.unsubscribe(adapter)
|
||||||
* // OR
|
* // OR
|
||||||
@ -253,18 +227,6 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
|||||||
* @const
|
* @const
|
||||||
* @type {Number}
|
* @type {Number}
|
||||||
*/
|
*/
|
||||||
SDK.Scanner.MIN_SCAN_DELAY = 500
|
Scanner.MIN_SCAN_DELAY = 500
|
||||||
|
|
||||||
/**
|
module.exports = Scanner
|
||||||
* @summary Create a new Scanner
|
|
||||||
* @param {Object} [options] - options
|
|
||||||
* @returns {SDK.Scanner}
|
|
||||||
* @example
|
|
||||||
* SDK.createScanner({
|
|
||||||
* standard: { ... },
|
|
||||||
* usbboot: { ... }
|
|
||||||
* })
|
|
||||||
*/
|
|
||||||
SDK.createScanner = (options) => {
|
|
||||||
return new SDK.Scanner(options)
|
|
||||||
}
|
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const imageStream = require('../image-stream')
|
const imageStream = require('../sdk/image-stream')
|
||||||
const fileExtensions = require('./file-extensions')
|
const fileExtensions = require('./file-extensions')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,7 +164,7 @@ describe('Browser: driveScanner', function () {
|
|||||||
path: '/mnt/foo'
|
path: '/mnt/foo'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
adapter: 'standard',
|
adapter: 'blockdevice',
|
||||||
isSystem: false,
|
isSystem: false,
|
||||||
isRemovable: false
|
isRemovable: false
|
||||||
},
|
},
|
||||||
@ -178,7 +178,7 @@ describe('Browser: driveScanner', function () {
|
|||||||
path: '/mnt/bar'
|
path: '/mnt/bar'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
adapter: 'standard',
|
adapter: 'blockdevice',
|
||||||
isSystem: false,
|
isSystem: false,
|
||||||
isRemovable: false
|
isRemovable: false
|
||||||
}
|
}
|
||||||
@ -268,7 +268,7 @@ describe('Browser: driveScanner', function () {
|
|||||||
description: 'Foo',
|
description: 'Foo',
|
||||||
size: '14G',
|
size: '14G',
|
||||||
mountpoints: [],
|
mountpoints: [],
|
||||||
adapter: 'standard',
|
adapter: 'blockdevice',
|
||||||
isSystem: false,
|
isSystem: false,
|
||||||
isRemovable: false
|
isRemovable: false
|
||||||
},
|
},
|
||||||
@ -282,7 +282,7 @@ describe('Browser: driveScanner', function () {
|
|||||||
path: 'F:'
|
path: 'F:'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
adapter: 'standard',
|
adapter: 'blockdevice',
|
||||||
isSystem: false,
|
isSystem: false,
|
||||||
isRemovable: false
|
isRemovable: false
|
||||||
}
|
}
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
const m = require('mochainon')
|
const m = require('mochainon')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const zipHooks = require('../../../lib/image-stream/archive-hooks/zip')
|
const zipHooks = require('../../../lib/sdk/image-stream/archive-hooks/zip')
|
||||||
const utils = require('../../../lib/image-stream/utils')
|
const utils = require('../../../lib/sdk/image-stream/utils')
|
||||||
const tester = require('../tester')
|
const tester = require('../tester')
|
||||||
const ZIP_PATH = path.join(__dirname, '..', 'data', 'zip')
|
const ZIP_PATH = path.join(__dirname, '..', 'data', 'zip')
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
|||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const BZ2_PATH = path.join(DATA_PATH, 'bz2')
|
const BZ2_PATH = path.join(DATA_PATH, 'bz2')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: BZ2', function () {
|
describe('ImageStream: BZ2', function () {
|
||||||
|
@ -21,7 +21,7 @@ const path = require('path')
|
|||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const errors = require('../../lib/shared/errors')
|
const errors = require('../../lib/shared/errors')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
|
|
||||||
describe('ImageStream: Directory', function () {
|
describe('ImageStream: Directory', function () {
|
||||||
describe('.getFromFilePath()', function () {
|
describe('.getFromFilePath()', function () {
|
||||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
|||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const DMG_PATH = path.join(DATA_PATH, 'dmg')
|
const DMG_PATH = path.join(DATA_PATH, 'dmg')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: DMG', function () {
|
describe('ImageStream: DMG', function () {
|
||||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
|||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const GZ_PATH = path.join(DATA_PATH, 'gz')
|
const GZ_PATH = path.join(DATA_PATH, 'gz')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: GZ', function () {
|
describe('ImageStream: GZ', function () {
|
||||||
|
@ -21,7 +21,7 @@ const fs = require('fs')
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: IMG', function () {
|
describe('ImageStream: IMG', function () {
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
const m = require('mochainon')
|
const m = require('mochainon')
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
|
|
||||||
describe('ImageStream', function () {
|
describe('ImageStream', function () {
|
||||||
describe('.supportedFileTypes', function () {
|
describe('.supportedFileTypes', function () {
|
||||||
|
@ -21,7 +21,7 @@ const fs = require('fs')
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: ISO', function () {
|
describe('ImageStream: ISO', function () {
|
||||||
|
@ -22,7 +22,7 @@ const DATA_PATH = path.join(__dirname, '..', 'data')
|
|||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const ZIP_PATH = path.join(DATA_PATH, 'metadata', 'zip')
|
const ZIP_PATH = path.join(DATA_PATH, 'metadata', 'zip')
|
||||||
const tester = require('../tester')
|
const tester = require('../tester')
|
||||||
const imageStream = require('../../../lib/image-stream/index')
|
const imageStream = require('../../../lib/sdk/image-stream/index')
|
||||||
|
|
||||||
const testMetadataProperty = (archivePath, propertyName, expectedValue) => {
|
const testMetadataProperty = (archivePath, propertyName, expectedValue) => {
|
||||||
return imageStream.getFromFilePath(archivePath).then((image) => {
|
return imageStream.getFromFilePath(archivePath).then((image) => {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
const m = require('mochainon')
|
const m = require('mochainon')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const mime = require('../../lib/image-stream/mime')
|
const mime = require('../../lib/sdk/image-stream/mime')
|
||||||
|
|
||||||
describe('ImageStream: MIME', function () {
|
describe('ImageStream: MIME', function () {
|
||||||
describe('.getMimeTypeFromFileName()', function () {
|
describe('.getMimeTypeFromFileName()', function () {
|
||||||
|
@ -22,7 +22,7 @@ const Bluebird = require('bluebird')
|
|||||||
const fs = Bluebird.promisifyAll(require('fs'))
|
const fs = Bluebird.promisifyAll(require('fs'))
|
||||||
const os = require('os')
|
const os = require('os')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
|
|
||||||
const doFilesContainTheSameData = (file1, file2) => {
|
const doFilesContainTheSameData = (file1, file2) => {
|
||||||
return Bluebird.props({
|
return Bluebird.props({
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
const m = require('mochainon')
|
const m = require('mochainon')
|
||||||
const StreamReadable = require('stream').Readable
|
const StreamReadable = require('stream').Readable
|
||||||
const utils = require('../../lib/image-stream/utils')
|
const utils = require('../../lib/sdk/image-stream/utils')
|
||||||
|
|
||||||
describe('ImageStream: Utils', function () {
|
describe('ImageStream: Utils', function () {
|
||||||
describe('.extractStream()', function () {
|
describe('.extractStream()', function () {
|
||||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
|||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const XZ_PATH = path.join(DATA_PATH, 'xz')
|
const XZ_PATH = path.join(DATA_PATH, 'xz')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: XZ', function () {
|
describe('ImageStream: XZ', function () {
|
||||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
|||||||
const DATA_PATH = path.join(__dirname, 'data')
|
const DATA_PATH = path.join(__dirname, 'data')
|
||||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||||
const ZIP_PATH = path.join(DATA_PATH, 'zip')
|
const ZIP_PATH = path.join(DATA_PATH, 'zip')
|
||||||
const imageStream = require('../../lib/image-stream/index')
|
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||||
const tester = require('./tester')
|
const tester = require('./tester')
|
||||||
|
|
||||||
describe('ImageStream: ZIP', function () {
|
describe('ImageStream: ZIP', function () {
|
||||||
|
@ -39,7 +39,7 @@ module.exports = {
|
|||||||
// on the tree (for testing purposes) or inside a generated
|
// on the tree (for testing purposes) or inside a generated
|
||||||
// bundle (for production purposes), by translating
|
// bundle (for production purposes), by translating
|
||||||
// relative require paths within the bundle.
|
// relative require paths within the bundle.
|
||||||
if (/\.\/(shared|image-stream)/i.test(request)) {
|
if (/\/(sdk|shared)/i.test(request)) {
|
||||||
return callback(null, `commonjs ../../../lib/${_.replace(request, /(\.\.\/)*/, '')}`)
|
return callback(null, `commonjs ../../../lib/${_.replace(request, /(\.\.\/)*/, '')}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user