{ "id": "104687", "key": "TIMOB-11702", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2012-11-08T05:36:24.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "cb-tooling" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2016-08-25T15:29:32.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "wrench.mkdirSyncRecursive() errors with a confusing message when it fails to create a directory due to write permissions.\r\n\r\nNeed to wrap all mkdir calls in a try/catch:\r\n\r\n*Titanium CLI:*\r\n\r\nlib/cli.js:\tfs.mkdir(dir, 0755, function () {\r\nlib/config.js:\t\t\twrench.mkdirSyncRecursive(titaniumConfigFolder);\r\n\r\n*node-appc:*\r\n\r\nlib/analytics.js:\t\tafs.exists(directory) || wrench.mkdirSyncRecursive(directory);\r\nlib/auth.js:\t\t\t\t\t\t\twrench.mkdirSyncRecursive(titaniumConfigFolder);\r\nlib/auth.js:\t\t\t\twrench.mkdirSyncRecursive(titaniumConfigFolder);\r\nlib/auth.js:\t\twrench.mkdirSyncRecursive(titaniumConfigFolder);\r\nlib/fs.js:\twrench.mkdirSyncRecursive(dest);\r\nlib/fs.js:\tif (!files.length) wrench.mkdirSyncRecursive(newDirLocation);\r\nlib/fs.js:\t\t\twrench.mkdirSyncRecursive(newDirLocation);\r\nlib/fs.js:\t\t\t\twrench.mkdirSyncRecursive(newDirLocation);\r\nlib/fs.js:\t\t\t\twrench.mkdirSyncRecursive(path.dirname(destFile));\r\nlib/fs.js:\t\t\tfs.mkdir(newDir, srcDirStat.mode, function (err) {\r\nlib/plist.js:\t\t\t\twrench.mkdirSyncRecursive(path.dirname(file));\r\nlib/zip.js:\t\twrench.mkdirSyncRecursive(destinationDir);\r\n\r\n*Titanium Mobile - Android:*\r\n\r\nandroid/cli/commands/_build.js:\t\t\twrench.mkdirSyncRecursive(cli.argv['output-dir']);\r\n\r\n*Titanium Mobile - iPhone:*\r\n\r\niphone/cli/commands/_build.js:\t\t\twrench.mkdirSyncRecursive(cli.argv['output-dir']);\r\niphone/cli/commands/_build.js:\t\twrench.mkdirSyncRecursive(this.assetsDir);\r\niphone/cli/commands/_build.js:\t\t\t\t\t\twrench.mkdirSyncRecursive(xcodeBuildDir);\r\niphone/cli/commands/_build.js:\t\t\t\twrench.mkdirSyncRecursive(this.xcodeAppDir);\r\niphone/cli/commands/_build.js:\t\twrench.mkdirSyncRecursive(xcodeDir);\r\niphone/cli/commands/_build.js:\t\t\t\t\twrench.mkdirSyncRecursive(dest);\r\niphone/cli/commands/_build.js:\t\t\t\t\twrench.mkdirSyncRecursive(dir);\r\niphone/cli/commands/_build.js:\t\t\t\twrench.mkdirSyncRecursive(lprojDir);\r\niphone/cli/commands/_build.js:\t\twrench.mkdirSyncRecursive(dir);\r\niphone/cli/commands/_build.js:\t\t\t\t\twrench.mkdirSyncRecursive(dest);\r\niphone/cli/commands/_build.js:\t\twrench.mkdirSyncRecursive(path.join(this.buildDir, 'Classes'));\r\niphone/cli/commands/_build.js:\t\t\t\t\twrench.mkdirSyncRecursive(to);\r\niphone/cli/commands/_build.js:\t\twrench.mkdirSyncRecursive(path.dirname(id));\r\niphone/cli/hooks/package.js:\t\t\t\t\twrench.mkdirSyncRecursive(archiveApp);\r\niphone/cli/hooks/package.js:\t\t\t\t\twrench.mkdirSyncRecursive(archiveDsym);\r\n\r\n*Titanium Mobile - Mobile Web:*\r\n\r\nmobileweb/cli/commands/_build.js:\t\twrench.mkdirSyncRecursive(this.buildDir);\r\nmobileweb/cli/commands/_build.js:\t\t\t\twrench.mkdirSyncRecursive(dest);\r\nmobileweb/cli/commands/_build.js:\t\t\t\twrench.mkdirSyncRecursive(dir);\r\n\r\n*Titanium Mobile - Global:*\r\n\r\nsupport/cli/commands/create.js:\tafs.exists(projectDir) || wrench.mkdirSyncRecursive(projectDir);\r\n\r\n*Titanium Mobile - titaniumsdk:*\r\n\r\nsupport/node_modules/titanium-sdk/lib/tiappxml.js:\t\t\t\twrench.mkdirSyncRecursive(path.dirname(file));\r\n", "attachment": [], "flagged": false, "summary": "CLI: Improve error messages when failing to create directories recursively", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }