@@ -70,7 +70,11 @@ async function run() {
7070 core.endGroup();
7171 if (success) {
7272 // Find and set outputs
73+ core.info('Searching for output files...');
74+ core.info(`Working directory: ${process.cwd()}`);
75+ core.info(`Course path: ${args.path || 'not set'}`);
7376 const outputFiles = (0, utils_1.findOutputFiles)(args);
77+ core.info(`Found ${outputFiles.length} output files: ${outputFiles.join(', ')}`);
7478 if (outputFiles.length > 0) {
7579 const primaryOutputFile = outputFiles[0];
7680 const fileSize = (0, utils_1.getFileSize)(primaryOutputFile);
@@ -86,6 +90,17 @@ async function run() {
8690 }
8791 else {
8892 core.warning('Export completed but no output files found');
93+ // Debug: List all files in potential output directories
94+ const searchDirs = [process.cwd(), args.path || path.dirname(args.input)];
95+ for (const dir of searchDirs) {
96+ try {
97+ const files = (__nccwpck_require__(9896).readdirSync)(dir);
98+ core.info(`Files in ${dir}: ${files.join(', ')}`);
99+ }
100+ catch (error) {
101+ core.warning(`Could not list files in ${dir}: ${error}`);
102+ }
103+ }
89104 core.setOutput('success', 'false');
90105 }
91106 }
@@ -603,50 +618,96 @@ exports.getFileSize = getFileSize;
603618 * Find output files based on format and output name
604619 */
605620function findOutputFiles(args) {
621+ // Search directories - check both working directory and course path
622+ const searchDirs = [
623+ process.cwd(),
624+ args.path || path.dirname(args.input)
625+ ].filter((dir, index, arr) => arr.indexOf(dir) === index); // Remove duplicates
626+ core.info(`Searching for output files in directories: ${searchDirs.join(', ')}`);
606627 const outputFiles = [];
607- const baseDir = process.cwd();
608- // Common patterns based on format
609- const patterns = {
610- 'scorm1.2': [`${args.output}.zip`],
611- 'scorm2004': [`${args.output}.zip`],
612- 'pdf': [`${args.output}.pdf`],
613- 'web': args['web-zip'] ? [`${args.output}.zip`] : [`${args.output}/`, `${args.output}`],
614- 'ims': [`${args.output}.zip`],
615- 'xapi': args['xapi-zip'] ? [`${args.output}.zip`] : [`${args.output}/`, `${args.output}`],
616- 'rdf': getRdfOutputPatterns(args),
617- 'json': [`${args.output}.json`],
618- 'project': ['*'] // Project generates multiple files
619- };
620- const formatPatterns = patterns[args.format] || [`${args.output}.*`];
621- for (const pattern of formatPatterns) {
622- if (pattern === '*') {
623- // For project format, find all possible generated files
624- const projectFiles = findProjectOutputFiles(args, baseDir);
625- outputFiles.push(...projectFiles);
628+ for (const searchDir of searchDirs) {
629+ core.info(`Checking directory: ${searchDir}`);
630+ // Get all files in directory for debugging
631+ try {
632+ const allFiles = fs.readdirSync(searchDir);
633+ core.info(`All files in ${searchDir}: ${allFiles.join(', ')}`);
626634 }
627- else if (pattern.endsWith('/')) {
628- // Directory output
629- const dir = path.join(baseDir, pattern);
630- if (fs.existsSync(dir) && fs.statSync(dir).isDirectory()) {
631- outputFiles.push(dir);
632- }
635+ catch (error) {
636+ core.warning(`Cannot read directory ${searchDir}: ${error}`);
637+ continue;
633638 }
634- else {
635- // File output - try exact match first, then with common variations
636- const variations = [
637- pattern,
638- pattern.replace(/\.[^.]*$/, ''),
639- `${pattern}.zip`,
640- `${pattern}.pdf`,
641- `${pattern}.json`
642- ];
643- for (const variation of variations) {
644- const file = path.join(baseDir, variation);
645- if (fs.existsSync(file) && !outputFiles.includes(file)) {
646- outputFiles.push(file);
647- break; // Only add the first match for each pattern
639+ // Format-specific file patterns
640+ const outputName = args.output;
641+ switch (args.format) {
642+ case 'scorm1.2':
643+ const scorm1File = path.join(searchDir, `${outputName}-scorm1.2.zip`);
644+ if (fs.existsSync(scorm1File)) {
645+ outputFiles.push(scorm1File);
646+ core.info(`Found SCORM 1.2 file: ${scorm1File}`);
647+ }
648+ break;
649+ case 'scorm2004':
650+ const scorm2004File = path.join(searchDir, `${outputName}-scorm2004.zip`);
651+ if (fs.existsSync(scorm2004File)) {
652+ outputFiles.push(scorm2004File);
653+ core.info(`Found SCORM 2004 file: ${scorm2004File}`);
654+ }
655+ break;
656+ case 'pdf':
657+ const pdfFile = path.join(searchDir, `${outputName}.pdf`);
658+ if (fs.existsSync(pdfFile)) {
659+ outputFiles.push(pdfFile);
660+ core.info(`Found PDF file: ${pdfFile}`);
661+ }
662+ break;
663+ case 'web':
664+ // Web format creates a directory
665+ const webDir = path.join(searchDir, outputName);
666+ if (fs.existsSync(webDir) && fs.statSync(webDir).isDirectory()) {
667+ outputFiles.push(webDir);
668+ core.info(`Found web directory: ${webDir}`);
669+ }
670+ break;
671+ case 'ims':
672+ const imsFile = path.join(searchDir, `${outputName}-ims.zip`);
673+ if (fs.existsSync(imsFile)) {
674+ outputFiles.push(imsFile);
675+ core.info(`Found IMS file: ${imsFile}`);
676+ }
677+ break;
678+ case 'xapi':
679+ const xapiFile = path.join(searchDir, `${outputName}-xapi.zip`);
680+ if (fs.existsSync(xapiFile)) {
681+ outputFiles.push(xapiFile);
682+ core.info(`Found xAPI file: ${xapiFile}`);
683+ }
684+ break;
685+ case 'rdf':
686+ // RDF format depends on rdf-format setting
687+ const rdfPatterns = getRdfOutputPatterns(args);
688+ for (const pattern of rdfPatterns) {
689+ const rdfFile = path.join(searchDir, pattern);
690+ if (fs.existsSync(rdfFile)) {
691+ outputFiles.push(rdfFile);
692+ core.info(`Found RDF file: ${rdfFile}`);
693+ }
694+ }
695+ break;
696+ case 'project':
697+ // Project format is complex, delegate to helper
698+ const projectFiles = findProjectOutputFiles(args, searchDir);
699+ outputFiles.push(...projectFiles);
700+ for (const file of projectFiles) {
701+ core.info(`Found project file: ${file}`);
702+ }
703+ break;
704+ default:
705+ // JSON format or unknown - look for JSON files
706+ const jsonFile = path.join(searchDir, `${outputName}.json`);
707+ if (fs.existsSync(jsonFile)) {
708+ outputFiles.push(jsonFile);
709+ core.info(`Found JSON file: ${jsonFile}`);
648710 }
649- }
650711 }
651712 }
652713 return outputFiles;
0 commit comments