{"action":"created","issue":{"url":"https://api.github.com/repos/pyinvoke/invoke/issues/173","labels_url":"https://api.github.com/repos/pyinvoke/invoke/issues/173/labels{/name}","comments_url":"https://api.github.com/repos/pyinvoke/invoke/issues/173/comments","events_url":"https://api.github.com/repos/pyinvoke/invoke/issues/173/events","html_url":"https://github.com/pyinvoke/invoke/issues/173","id":40977704,"number":173,"title":"Allow the easy creation of executable utilities with invoke.","user":{"login":"sophacles","id":30170,"avatar_url":"https://avatars.githubusercontent.com/u/30170?v=3","gravatar_id":"","url":"https://api.github.com/users/sophacles","html_url":"https://github.com/sophacles","followers_url":"https://api.github.com/users/sophacles/followers","following_url":"https://api.github.com/users/sophacles/following{/other_user}","gists_url":"https://api.github.com/users/sophacles/gists{/gist_id}","starred_url":"https://api.github.com/users/sophacles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sophacles/subscriptions","organizations_url":"https://api.github.com/users/sophacles/orgs","repos_url":"https://api.github.com/users/sophacles/repos","events_url":"https://api.github.com/users/sophacles/events{/privacy}","received_events_url":"https://api.github.com/users/sophacles/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/pyinvoke/invoke/labels/Core%20CLI%20behavior","name":"Core CLI behavior","color":"444444"},{"url":"https://api.github.com/repos/pyinvoke/invoke/labels/Feature","name":"Feature","color":"40a056"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/pyinvoke/invoke/milestones/4","html_url":"https://github.com/pyinvoke/invoke/milestones/1.0","labels_url":"https://api.github.com/repos/pyinvoke/invoke/milestones/4/labels","id":1294336,"number":4,"title":"1.0","description":null,"creator":{"login":"bitprophet","id":6088,"avatar_url":"https://avatars.githubusercontent.com/u/6088?v=3","gravatar_id":"","url":"https://api.github.com/users/bitprophet","html_url":"https://github.com/bitprophet","followers_url":"https://api.github.com/users/bitprophet/followers","following_url":"https://api.github.com/users/bitprophet/following{/other_user}","gists_url":"https://api.github.com/users/bitprophet/gists{/gist_id}","starred_url":"https://api.github.com/users/bitprophet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitprophet/subscriptions","organizations_url":"https://api.github.com/users/bitprophet/orgs","repos_url":"https://api.github.com/users/bitprophet/repos","events_url":"https://api.github.com/users/bitprophet/events{/privacy}","received_events_url":"https://api.github.com/users/bitprophet/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":0,"state":"open","created_at":"2015-09-07T20:54:17Z","updated_at":"2015-09-07T21:02:06Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2014-08-23T15:16:00Z","updated_at":"2015-09-07T21:07:05Z","closed_at":null,"body":"Splitting this ticket from #170 at the request of @bitprophet \r\n\r\nIt would be nice to easily create scripts that I can place in my `$PATH` that internally use invoke, but are named according to script functionality. Some rational (copied from referenced ticket discussion):\r\n\r\nI could probably train myself always to do:\r\n\r\n`inv -c /path/to/source/tree/utils/$TASK ....`\r\n\r\nBut I kind of like having them:\r\n\r\n1. as a script available in my $PATH \r\n2. as tools named cognitively, just like when I'm using busybox... i just link (e.g) ls and cp rather than calling busybox ls ... or busybox cp file1 file2\r\n3. in a consistent place (depending on what I'm doing, the source tree where the task files live can vary. It's in one place on my dev machine, and different places in deployment depending on what OS, nfs details, and so on. We're still working out our \"one true deployment strategy\" so this changes as stuff comes up).\r\n\r\nAlso noteworthy, several of my targets are most commonly called from places in the system that are not the directory where invoke lives.\r\n\r\nCurrently I do this via the code in this gist: https://gist.github.com/sophacles/c17ce33a14d582dfa268 and creating `scripts` entry points in a setup.py."},"comment":{"url":"https://api.github.com/repos/pyinvoke/invoke/issues/comments/138377229","html_url":"https://github.com/pyinvoke/invoke/issues/173#issuecomment-138377229","issue_url":"https://api.github.com/repos/pyinvoke/invoke/issues/173","id":138377229,"user":{"login":"bitprophet","id":6088,"avatar_url":"https://avatars.githubusercontent.com/u/6088?v=3","gravatar_id":"","url":"https://api.github.com/users/bitprophet","html_url":"https://github.com/bitprophet","followers_url":"https://api.github.com/users/bitprophet/followers","following_url":"https://api.github.com/users/bitprophet/following{/other_user}","gists_url":"https://api.github.com/users/bitprophet/gists{/gist_id}","starred_url":"https://api.github.com/users/bitprophet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitprophet/subscriptions","organizations_url":"https://api.github.com/users/bitprophet/orgs","repos_url":"https://api.github.com/users/bitprophet/repos","events_url":"https://api.github.com/users/bitprophet/events{/privacy}","received_events_url":"https://api.github.com/users/bitprophet/received_events","type":"User","site_admin":false},"created_at":"2015-09-07T21:07:05Z","updated_at":"2015-09-07T21:07:05Z","body":"I don't see a note here about it, but at some point we did do a TINY bit of work towards this by allowing users to override `--version` output, https://github.com/pyinvoke/invoke/blob/6aeffbde925291c281c700be0f1fac7c50a6fbc4/invoke/cli.py#L268-L271 - I think it was coderanger who requested it.\r\n\r\nWhatever we do for this (which will be Soon now because I need it, again) should tickle that too, or replace it."}}