blob: 1e742674436ea35e7c83707de0d99828b4f3e885 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
import qbs.BinaryFile
Product {
type: ["dummy"]
Rule {
multiplex: true
outputFileTags: "dummy"
prepare: {
var commands = [];
var cmd = new JavaScriptCommand();
cmd.silent = true;
cmd.sourceCode = function() {
var source = new BinaryFile("source.dat", BinaryFile.WriteOnly);
source.write([ 0x01, 0x02 ]); // First data.
// Do not close the file to test the auto close functionality.
};
commands.push(cmd);
cmd = new JavaScriptCommand();
cmd.silent = true;
cmd.sourceCode = function() {
source = new BinaryFile("source.dat", BinaryFile.ReadWrite);
source.seek(source.size());
source.write([ 0x03, 0x04 ]); // Second data.
source.close();
source = new BinaryFile("source.dat", BinaryFile.ReadWrite);
var destination = new BinaryFile("destination.dat", BinaryFile.WriteOnly);
destination.write(source.atEof() ? [ 0xFF ] : [ 0x00 ]);
while (true) {
var data = source.read(1);
if (!data || data.length == 0)
break;
destination.write(data);
}
source.resize(0); // truncate
destination.write([ 0x05, 0x06 ]); // Third data.
destination.write(source.atEof() ? [ 0xFF ] : [ 0x00 ]);
source.close();
destination.close();
};
commands.push(cmd);
return commands;
}
}
}
|