{ "id": "108357", "key": "TIMOB-12366", "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": [ { "id": "15703", "description": "2013 Sprint 22", "name": "2013 Sprint 22", "archived": true, "released": true, "releaseDate": "2013-11-01" }, { "id": "15705", "description": "2013 Sprint 22 Core", "name": "2013 Sprint 22 Core", "archived": true, "released": true, "releaseDate": "2013-11-01" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": null, "resolutiondate": null, "created": "2013-01-22T02:19:59.000+0000", "priority": { "name": "High", "id": "2" }, "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": [ { "id": "26331", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "105586", "key": "TIMOB-11869", "fields": { "summary": "CLI: Missing values prompt needs to process values iteratively", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "26330", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "102708", "key": "TIMOB-11267", "fields": { "summary": "CLI: Revamp prompt library", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2016-08-19T04:27:51.000+0000", "status": { "description": "This issue was once resolved, but the resolution was deemed incorrect. From here issues are either marked assigned or resolved.", "name": "Reopened", "id": "4", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "While trying to test prompted options in the CLI I encountered and error trying to use \"~/Documents\". Using the full path did work (/Users/emerriman/Documents…), but it was not evident that the tilde was the problem initially and took me a moment to figure out.\r\n\r\nSteps to reproduce:\r\n1) Use ti CLI to create a project\r\n2) Ensure you do not have the Android SDK in your config file\r\n3) Place your Android SDK in your user folder\r\n4) Perform a build with -p android and let the CLI prompt you for the path to the Android SDK\r\n5) Use the \"~\" to start your path\r\n\r\nResult:\r\n[ERROR] Invalid Android SDK path\r\n\r\nExpected:\r\nBuild proceeds as expected\r\n", "attachment": [], "flagged": false, "summary": "CLI: Allow tilde use for paths", "creator": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Mac OS 10.8.2\r\nCLI 3.0.22", "comment": { "comments": [ { "id": "240484", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "This is going to take some major work to fix. The problem is the Android build will try to find your Android SDK using the config or some common places to look for it. Since it won't find the Android SDK, it will prompt for the location. Once we prompt for it, we've already done detection, so we need to re-detect based on the newly supplied Android SDK path. But since Android environment detection is async, there's no way to do call anything async between the prompting and the validate().\n\nTo fix this:\n\n1. Add async friendly post-prompt phase to Titanium CLI\n2. During validate(), if androidEnv is undefined/null, call android.detect() with newly supplied Android SDK path and then continue with current validation logic.\n\nI'm going to shelf this until the new prompting library gets integrated into the CLI (TIMOB-11267) and we add support for iteratively processing prompted values (TIMOB-11869).", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-03-03T23:07:21.000+0000", "updated": "2013-03-03T23:07:21.000+0000" }, { "id": "276876", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "This was fixed as apart of the new Android build. I scanned a number of other places that accept paths and everything appears to allow ~.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-25T23:35:56.000+0000", "updated": "2013-10-25T23:35:56.000+0000" }, { "id": "279804", "author": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed on:\nMac OSX 10.9 Mavericks\nTitanium Studio, build: 3.2.0.201311150750\nTitanium SDK, build: 3.2.0.v20131114184328\nCLI: 3.2.0\nAlloy: 1.3.0\n\nStarted Android SDK path with ~/. The SDK was detected and the project ran successfully on emulator.\nClosing.", "updateAuthor": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-11-15T18:11:07.000+0000", "updated": "2013-11-15T18:11:07.000+0000" }, { "id": "382189", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "This is still/again an issue:\r\n\r\n{code}\r\n───────────────────┤ Android Settings ├───────────────────\r\n\r\nPath to the Android SDK\r\nEnter \"none\" if you don't want to build for Android.\r\n: ~/Library/Android/sdk\r\n[ERROR] Invalid Android SDK path\r\nRequired file does not exist: \"~/Library/Android/sdk/tools/android\"\r\n\r\n: /users/fokkezb/Library/Android/sdk\r\n\r\nPath to the Android NDK\r\nOnly required for building native Titainum Modules.\r\n:\r\n{code}", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-04-08T13:25:31.000+0000", "updated": "2016-04-08T13:25:31.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }