in Tasks/GooglePlayReleaseV4/modules/metadataHelper.ts [342:424]
function getImageList(directory: string): { [key: string]: string[] } {
const imageTypes: string[] = ['featureGraphic', 'icon', 'promoGraphic', 'tvBanner', 'phoneScreenshots', 'sevenInchScreenshots', 'tenInchScreenshots', 'tvScreenshots', 'wearScreenshots'];
const acceptedExtensions: string[] = ['.png', '.jpg', '.jpeg'];
const imageDirectory: string = path.join(directory, 'images');
const imageList: { [key: string]: string[] } = {};
for (const imageType of imageTypes) {
let shouldAttemptUpload: boolean = false;
imageList[imageType] = [];
tl.debug(`Attempting to get images of type ${imageType}`);
switch (imageType) {
case 'featureGraphic':
case 'icon':
case 'promoGraphic':
case 'tvBanner':
for (let acceptedExtension of acceptedExtensions) {
let fullPathToFileToCheck: string = path.join(imageDirectory, imageType + acceptedExtension);
try {
let imageStat: tl.FsStats = tl.stats(fullPathToFileToCheck);
if (imageStat) {
shouldAttemptUpload = imageStat.isFile();
if (shouldAttemptUpload) {
console.log(tl.loc('FoundImageAtPath', imageType, fullPathToFileToCheck));
imageList[imageType].push(fullPathToFileToCheck);
break;
}
}
} catch (e) {
tl.debug(`File ${fullPathToFileToCheck} doesn't exist. Skipping...`);
}
}
if (!shouldAttemptUpload) {
console.log(tl.loc('ImageTypeNotFound', imageType));
}
break;
case 'phoneScreenshots':
case 'sevenInchScreenshots':
case 'tenInchScreenshots':
case 'tvScreenshots':
case 'wearScreenshots':
try {
let fullPathToDirToCheck: string = path.join(imageDirectory, imageType);
let imageStat: fs.Stats = fs.statSync(fullPathToDirToCheck);
if (imageStat) {
tl.debug(`Found something for type ${imageType}`);
shouldAttemptUpload = imageStat.isDirectory();
if (!shouldAttemptUpload) {
console.log(tl.loc('StatNotDirectory', imageType));
} else {
imageList[imageType] = fs.readdirSync(fullPathToDirToCheck)
.filter(function (image) {
try {
return fs.statSync(path.join(fullPathToDirToCheck, image)).isFile();
} catch (e) {
tl.debug(e);
tl.debug(`Failed to stat path ${image}. Ignoring...`);
}
return false;
})
.map(function (image) {
return path.join(fullPathToDirToCheck, image);
});
}
}
} catch (e) {
tl.debug(e);
console.log(tl.loc('ImageDirNotFound', imageType));
}
break;
default:
tl.debug(`Image type ${imageType} is an unknown type and was ignored`);
continue;
}
}
tl.debug(`Finished enumerating images: ${JSON.stringify(imageList)}`);
return imageList;
}