-
Notifications
You must be signed in to change notification settings - Fork 3
/
test.areAllAvailable.js
68 lines (58 loc) · 2.61 KB
/
test.areAllAvailable.js
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* jshint rhino: true, unused: false */
/* global project,self,attributes,elements */
/* The directives above tell jshint about globals provided by ant and rhino */
(function(project, self, attributes, elements) {
'use strict';
//Creating echo task instead of using self.log() so messages are aligned with other tasks
var echoTask=project.createTask('echo');
var echoMessage=function(message){
echoTask.setMessage(message);
echoTask.perform();
};
//Get attributes passed into task
//Note: ant converts attributes to lowercase!
var propertyNameToSet = attributes.get('property');
var pathsRefIdString = attributes.get('pathrefid');
//Only proceed if propertyName not already set
if (project.getProperty(propertyNameToSet) === null) {
//Look up file paths to search for
var antFiles, filesList;
antFiles = project.getReference(pathsRefIdString);
if (antFiles === null) {
self.fail('Error: Could not find reference \'' + pathsRefIdString + '\'.');
}
//echoMessage('antfiles.size='+antFiles.size());
if (antFiles.size() > 0) {
var pathSeparator = project.getProperty('path.separator');
//Convert to java string and then javascript string before splitting
//filesList is a javascript array
filesList = String(antFiles.toString()).split(pathSeparator);
//echoMessage('Is filesList an array?=' + (Object.prototype.toString.call(filesList) === '[object Array]'));
var File = java.io.File;
var currentFile, currentFileExists;
var fileListPosition = filesList.length;
//echoMessage('length=' + fileListPosition);
//Iterate of each file to check if it exists
do {
fileListPosition--;
currentFile = new File(filesList[fileListPosition]);
//echoMessage('item=' + fileListPosition + ' currentFile=' + currentFile);
currentFileExists = currentFile.exists();
if (!currentFileExists) {
echoMessage('Warning: ' + filesList[fileListPosition] + ' does not exist.');
}
} while (fileListPosition > 0 && currentFileExists);
//Only set the property if all files exist
if (fileListPosition === 0 && currentFileExists) {
var areAllAvailableProperty = project.createTask('property');
areAllAvailableProperty.setName(propertyNameToSet);
areAllAvailableProperty.setValue(true);
areAllAvailableProperty.perform();
} else {
echoMessage('Warning: Some files in \'' + pathsRefIdString +
'\' do not exist. Property \'' +
propertyNameToSet + '\' was not set.');
}
}
}
})(project, self, attributes, elements);