{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/osquery/issues/2004","repository_url":"https://api.github.com/repos/facebook/osquery","labels_url":"https://api.github.com/repos/facebook/osquery/issues/2004/labels{/name}","comments_url":"https://api.github.com/repos/facebook/osquery/issues/2004/comments","events_url":"https://api.github.com/repos/facebook/osquery/issues/2004/events","html_url":"https://github.com/facebook/osquery/issues/2004","id":144407058,"number":2004,"title":"Tests for glob functionality","user":{"login":"dguido","id":294844,"avatar_url":"https://avatars.githubusercontent.com/u/294844?v=3","gravatar_id":"","url":"https://api.github.com/users/dguido","html_url":"https://github.com/dguido","followers_url":"https://api.github.com/users/dguido/followers","following_url":"https://api.github.com/users/dguido/following{/other_user}","gists_url":"https://api.github.com/users/dguido/gists{/gist_id}","starred_url":"https://api.github.com/users/dguido/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dguido/subscriptions","organizations_url":"https://api.github.com/users/dguido/orgs","repos_url":"https://api.github.com/users/dguido/repos","events_url":"https://api.github.com/users/dguido/events{/privacy}","received_events_url":"https://api.github.com/users/dguido/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/osquery/labels/Windows","name":"Windows","color":"d4c5f9"}],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/facebook/osquery/milestones/19","html_url":"https://github.com/facebook/osquery/milestones/Windows:%20Paths%20and%20Cosmetic%20API%20Updates","labels_url":"https://api.github.com/repos/facebook/osquery/milestones/19/labels","id":1672919,"number":19,"title":"Windows: Paths and Cosmetic API Updates","description":"# Milestone Goals\r\n* All path references use boost::filestystem::path objects\r\n* All checks for ‘\\n’ account that Windows may use ‘\\r\\n’\r\n* There is an implementation of glob() that works on Windows. Tests for glob() functionality.\r\n* Common directory locations (e.g. temporary files, home directory) are gathered in a platform-independent manner.\r\n* Substitute compatible or standard APIs for any remaining Unix-only APIs\r\n* The build should succeed, although osquery will not yet run on Windows as a daemon (service). The  Unix version builds and works.\r\n\r\n## Subtasks\r\n\r\n### Platform-independent Paths\r\nWindows uses ‘\\’ as the path separator instead of ‘/’. The boost path library already includes an overloaded division operator to build platform independent paths. Instead of string paths, all paths should just be changed to use boost::filesystem::path objects. This is an annoying change, but fairly trivial. \r\n\r\n### Line Endings\r\nIn a similar vein, Windows uses ‘\\r\\n’ for line endings, and osquery code uses ‘\\n’ checks explicitly. \r\n\r\n### Glob Support\r\nThere is no glob() on Windows, it would have to be re-implemented, or we’d have to find an existing BSD-licensed implementation. \r\n\r\n### Temporary Files and Paths\r\nThe code assumes getenv(“HOME”) exists, and that the home directory is the proper place for application data (this would probably be the AppData directory on Windows). There are also assumptions about temporary files being in ‘/tmp’ and ‘~’ being a special path character. Temporary directory operations should be abstracted and have platform specific implementations.\r\n\r\n### Compatible API Changes\r\nUpdate APIs to use slightly differently named Windows equivalents, or standard C++11 features. For example, using _isatty() instead of isatty() and using std::this_thread::sleep_for() instead of usleep().","creator":{"login":"dguido","id":294844,"avatar_url":"https://avatars.githubusercontent.com/u/294844?v=3","gravatar_id":"","url":"https://api.github.com/users/dguido","html_url":"https://github.com/dguido","followers_url":"https://api.github.com/users/dguido/followers","following_url":"https://api.github.com/users/dguido/following{/other_user}","gists_url":"https://api.github.com/users/dguido/gists{/gist_id}","starred_url":"https://api.github.com/users/dguido/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dguido/subscriptions","organizations_url":"https://api.github.com/users/dguido/orgs","repos_url":"https://api.github.com/users/dguido/repos","events_url":"https://api.github.com/users/dguido/events{/privacy}","received_events_url":"https://api.github.com/users/dguido/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":2,"state":"open","created_at":"2016-03-29T22:23:48Z","updated_at":"2016-06-06T19:21:57Z","due_on":"2016-06-09T07:00:00Z","closed_at":null},"comments":1,"created_at":"2016-03-29T22:26:13Z","updated_at":"2016-06-06T19:21:57Z","closed_at":"2016-06-06T19:21:57Z","body":""},"comment":{"url":"https://api.github.com/repos/facebook/osquery/issues/comments/224060494","html_url":"https://github.com/facebook/osquery/issues/2004#issuecomment-224060494","issue_url":"https://api.github.com/repos/facebook/osquery/issues/2004","id":224060494,"user":{"login":"yying","id":4278185,"avatar_url":"https://avatars.githubusercontent.com/u/4278185?v=3","gravatar_id":"","url":"https://api.github.com/users/yying","html_url":"https://github.com/yying","followers_url":"https://api.github.com/users/yying/followers","following_url":"https://api.github.com/users/yying/following{/other_user}","gists_url":"https://api.github.com/users/yying/gists{/gist_id}","starred_url":"https://api.github.com/users/yying/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yying/subscriptions","organizations_url":"https://api.github.com/users/yying/orgs","repos_url":"https://api.github.com/users/yying/repos","events_url":"https://api.github.com/users/yying/events{/privacy}","received_events_url":"https://api.github.com/users/yying/received_events","type":"User","site_admin":false},"created_at":"2016-06-06T19:21:57Z","updated_at":"2016-06-06T19:21:57Z","body":"Closed with #2119"}}
{"actor":{"display_login":"yying"}}