{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/4874","labels_url":"https://api.github.com/repos/servo/servo/issues/4874/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/4874/comments","events_url":"https://api.github.com/repos/servo/servo/issues/4874/events","html_url":"https://github.com/servo/servo/issues/4874","id":57028016,"number":4874,"title":"mach run should produce a better error when the binary is missing","user":{"login":"jdm","id":27658,"avatar_url":"https://avatars.githubusercontent.com/u/27658?v=3","gravatar_id":"","url":"https://api.github.com/users/jdm","html_url":"https://github.com/jdm","followers_url":"https://api.github.com/users/jdm/followers","following_url":"https://api.github.com/users/jdm/following{/other_user}","gists_url":"https://api.github.com/users/jdm/gists{/gist_id}","starred_url":"https://api.github.com/users/jdm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdm/subscriptions","organizations_url":"https://api.github.com/users/jdm/orgs","repos_url":"https://api.github.com/users/jdm/repos","events_url":"https://api.github.com/users/jdm/events{/privacy}","received_events_url":"https://api.github.com/users/jdm/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/servo/servo/labels/A-mach","name":"A-mach","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/C-assigned","name":"C-assigned","color":"02d7e1"},{"url":"https://api.github.com/repos/servo/servo/labels/E-easy","name":"E-easy","color":"02e10c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-02-09T13:06:05Z","updated_at":"2015-02-13T05:59:56Z","closed_at":null,"body":"```\r\ngodot2:servo jdm$ ./mach run http://google.com\r\nError running mach:\r\n\r\n    ['run', 'http://google.com']\r\n\r\nThe error occurred in code that was called by the mach command. This is either\r\na bug in the called code itself or in the way that mach is calling it.\r\n\r\nYou should consider filing a bug for this issue.\r\n\r\nIf filing a bug, please include the full output of mach, including this error\r\nmessage.\r\n\r\nThe details of the failure are as follows:\r\n\r\nOSError: [Errno 2] No such file or directory\r\n\r\n  File \"/Users/jdm/src/servo/python/servo/post_build_commands.py\", line 78, in run\r\n    subprocess.check_call(args, env=env)\r\n  File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py\", line 535, in check_call\r\n    retcode = call(*popenargs, **kwargs)\r\n  File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py\", line 522, in call\r\n    return Popen(*popenargs, **kwargs).wait()\r\n  File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py\", line 710, in __init__\r\n    errread, errwrite)\r\n  File \"/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py\", line 1335, in _execute_child\r\n    raise child_exception\r\n```\r\nThis is really unintelligible. What it means is that `subprocess.check_call` threw an exception because it couldn't find the servo binary, so let's catch that exception in `post_build_commands.py`."},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/74209112","html_url":"https://github.com/servo/servo/issues/4874#issuecomment-74209112","issue_url":"https://api.github.com/repos/servo/servo/issues/4874","id":74209112,"user":{"login":"Manishearth","id":1617736,"avatar_url":"https://avatars.githubusercontent.com/u/1617736?v=3","gravatar_id":"","url":"https://api.github.com/users/Manishearth","html_url":"https://github.com/Manishearth","followers_url":"https://api.github.com/users/Manishearth/followers","following_url":"https://api.github.com/users/Manishearth/following{/other_user}","gists_url":"https://api.github.com/users/Manishearth/gists{/gist_id}","starred_url":"https://api.github.com/users/Manishearth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Manishearth/subscriptions","organizations_url":"https://api.github.com/users/Manishearth/orgs","repos_url":"https://api.github.com/users/Manishearth/repos","events_url":"https://api.github.com/users/Manishearth/events{/privacy}","received_events_url":"https://api.github.com/users/Manishearth/received_events","type":"User","site_admin":false},"created_at":"2015-02-13T05:59:56Z","updated_at":"2015-02-13T05:59:56Z","body":"I'd prefer if it didn't; I want to be able to test things without triggering a build.\r\n\r\nThat's the makefile way of doing things; mark build as a dep for run/test and rebuild every time you need to. Except that this can trigger large rebuilds when all you wanted was to test it. The Firefox/mach way of doing it is to have builds be explicit, and tests will run on binaries if they exist (if not, trigger a build)"}}