{"action":"created","comment":{"url":"https://api.github.com/repos/mesonbuild/meson/pulls/comments/96123651","pull_request_review_id":16701524,"id":96123651,"diff_hunk":"@@ -32,11 +32,91 @@\n \n import os, sys, shutil, uuid\n import re\n+import stat\n \n import importlib\n \n run_depr_printed = False\n \n+# The first triad is for owner permissions, the second for group permissions,\n+# and the third for others (everyone else).\n+# For the 1st charater:\n+#  'r' means can read\n+#  '-' means not allowed\n+# For the 2nd charater:","path":"mesonbuild/interpreter.py","position":15,"original_position":15,"commit_id":"a96ea90c0c87a9eff2b4f7645dda327d7d67d6cc","original_commit_id":"a96ea90c0c87a9eff2b4f7645dda327d7d67d6cc","user":{"login":"QuLogic","id":302469,"avatar_url":"https://avatars.githubusercontent.com/u/302469?v=3","gravatar_id":"","url":"https://api.github.com/users/QuLogic","html_url":"https://github.com/QuLogic","followers_url":"https://api.github.com/users/QuLogic/followers","following_url":"https://api.github.com/users/QuLogic/following{/other_user}","gists_url":"https://api.github.com/users/QuLogic/gists{/gist_id}","starred_url":"https://api.github.com/users/QuLogic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QuLogic/subscriptions","organizations_url":"https://api.github.com/users/QuLogic/orgs","repos_url":"https://api.github.com/users/QuLogic/repos","events_url":"https://api.github.com/users/QuLogic/events{/privacy}","received_events_url":"https://api.github.com/users/QuLogic/received_events","type":"User","site_admin":false},"body":"character","created_at":"2017-01-14T20:19:28Z","updated_at":"2017-01-14T20:25:36Z","html_url":"https://github.com/mesonbuild/meson/pull/1302#discussion_r96123651","pull_request_url":"https://api.github.com/repos/mesonbuild/meson/pulls/1302","_links":{"self":{"href":"https://api.github.com/repos/mesonbuild/meson/pulls/comments/96123651"},"html":{"href":"https://github.com/mesonbuild/meson/pull/1302#discussion_r96123651"},"pull_request":{"href":"https://api.github.com/repos/mesonbuild/meson/pulls/1302"}}},"pull_request":{"url":"https://api.github.com/repos/mesonbuild/meson/pulls/1302","id":101563984,"html_url":"https://github.com/mesonbuild/meson/pull/1302","diff_url":"https://github.com/mesonbuild/meson/pull/1302.diff","patch_url":"https://github.com/mesonbuild/meson/pull/1302.patch","issue_url":"https://api.github.com/repos/mesonbuild/meson/issues/1302","number":1302,"state":"open","locked":false,"title":"Support file perms for install_data and install_subdir","user":{"login":"nirbheek","id":75801,"avatar_url":"https://avatars.githubusercontent.com/u/75801?v=3","gravatar_id":"","url":"https://api.github.com/users/nirbheek","html_url":"https://github.com/nirbheek","followers_url":"https://api.github.com/users/nirbheek/followers","following_url":"https://api.github.com/users/nirbheek/following{/other_user}","gists_url":"https://api.github.com/users/nirbheek/gists{/gist_id}","starred_url":"https://api.github.com/users/nirbheek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nirbheek/subscriptions","organizations_url":"https://api.github.com/users/nirbheek/orgs","repos_url":"https://api.github.com/users/nirbheek/repos","events_url":"https://api.github.com/users/nirbheek/events{/privacy}","received_events_url":"https://api.github.com/users/nirbheek/received_events","type":"User","site_admin":false},"body":"With the `install_mode:` kwarg, you can now specify the file and directory permissions to be used while installing.\r\n\r\nThe format of the `install_mode:` kwarg is the same as the symbolic notation used by `ls -l` with the first character that specifies `d`, `-`, `c`, etc for the file type omitted since that is always obvious from the context.\r\n\r\nIncludes unit tests for the same. Sadly these only run on Linux right now, but we want them to run on all platforms. We do set the mode in the integration tests for all platforms but we don't check if they were\r\nactually set correctly.\r\n\r\nWe will also need an `install_mode:` kwarg for `build_target`s, but that's a bit more involved since it should involve cleaning up `generate_target_install()`. Will add that in another PR.","created_at":"2017-01-14T15:10:49Z","updated_at":"2017-01-14T20:25:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc83f4f02ca2abd6753c2e64fc9d035d4410bb71","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/mesonbuild/meson/pulls/1302/commits","review_comments_url":"https://api.github.com/repos/mesonbuild/meson/pulls/1302/comments","review_comment_url":"https://api.github.com/repos/mesonbuild/meson/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mesonbuild/meson/issues/1302/comments","statuses_url":"https://api.github.com/repos/mesonbuild/meson/statuses/a96ea90c0c87a9eff2b4f7645dda327d7d67d6cc","head":{"label":"centricular:install-mode","ref":"install-mode","sha":"a96ea90c0c87a9eff2b4f7645dda327d7d67d6cc","user":{"login":"centricular","id":16556870,"avatar_url":"https://avatars.githubusercontent.com/u/16556870?v=3","gravatar_id":"","url":"https://api.github.com/users/centricular","html_url":"https://github.com/centricular","followers_url":"https://api.github.com/users/centricular/followers","following_url":"https://api.github.com/users/centricular/following{/other_user}","gists_url":"https://api.github.com/users/centricular/gists{/gist_id}","starred_url":"https://api.github.com/users/centricular/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/centricular/subscriptions","organizations_url":"https://api.github.com/users/centricular/orgs","repos_url":"https://api.github.com/users/centricular/repos","events_url":"https://api.github.com/users/centricular/events{/privacy}","received_events_url":"https://api.github.com/users/centricular/received_events","type":"Organization","site_admin":false},"repo":{"id":54555921,"name":"meson","full_name":"centricular/meson","owner":{"login":"centricular","id":16556870,"avatar_url":"https://avatars.githubusercontent.com/u/16556870?v=3","gravatar_id":"","url":"https://api.github.com/users/centricular","html_url":"https://github.com/centricular","followers_url":"https://api.github.com/users/centricular/followers","following_url":"https://api.github.com/users/centricular/following{/other_user}","gists_url":"https://api.github.com/users/centricular/gists{/gist_id}","starred_url":"https://api.github.com/users/centricular/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/centricular/subscriptions","organizations_url":"https://api.github.com/users/centricular/orgs","repos_url":"https://api.github.com/users/centricular/repos","events_url":"https://api.github.com/users/centricular/events{/privacy}","received_events_url":"https://api.github.com/users/centricular/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/centricular/meson","description":"DEPRECATED: Upstream Meson 0.36.0 has everything needed for MSVC support","fork":true,"url":"https://api.github.com/repos/centricular/meson","forks_url":"https://api.github.com/repos/centricular/meson/forks","keys_url":"https://api.github.com/repos/centricular/meson/keys{/key_id}","collaborators_url":"https://api.github.com/repos/centricular/meson/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/centricular/meson/teams","hooks_url":"https://api.github.com/repos/centricular/meson/hooks","issue_events_url":"https://api.github.com/repos/centricular/meson/issues/events{/number}","events_url":"https://api.github.com/repos/centricular/meson/events","assignees_url":"https://api.github.com/repos/centricular/meson/assignees{/user}","branches_url":"https://api.github.com/repos/centricular/meson/branches{/branch}","tags_url":"https://api.github.com/repos/centricular/meson/tags","blobs_url":"https://api.github.com/repos/centricular/meson/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/centricular/meson/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/centricular/meson/git/refs{/sha}","trees_url":"https://api.github.com/repos/centricular/meson/git/trees{/sha}","statuses_url":"https://api.github.com/repos/centricular/meson/statuses/{sha}","languages_url":"https://api.github.com/repos/centricular/meson/languages","stargazers_url":"https://api.github.com/repos/centricular/meson/stargazers","contributors_url":"https://api.github.com/repos/centricular/meson/contributors","subscribers_url":"https://api.github.com/repos/centricular/meson/subscribers","subscription_url":"https://api.github.com/repos/centricular/meson/subscription","commits_url":"https://api.github.com/repos/centricular/meson/commits{/sha}","git_commits_url":"https://api.github.com/repos/centricular/meson/git/commits{/sha}","comments_url":"https://api.github.com/repos/centricular/meson/comments{/number}","issue_comment_url":"https://api.github.com/repos/centricular/meson/issues/comments{/number}","contents_url":"https://api.github.com/repos/centricular/meson/contents/{+path}","compare_url":"https://api.github.com/repos/centricular/meson/compare/{base}...{head}","merges_url":"https://api.github.com/repos/centricular/meson/merges","archive_url":"https://api.github.com/repos/centricular/meson/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/centricular/meson/downloads","issues_url":"https://api.github.com/repos/centricular/meson/issues{/number}","pulls_url":"https://api.github.com/repos/centricular/meson/pulls{/number}","milestones_url":"https://api.github.com/repos/centricular/meson/milestones{/number}","notifications_url":"https://api.github.com/repos/centricular/meson/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/centricular/meson/labels{/name}","releases_url":"https://api.github.com/repos/centricular/meson/releases{/id}","deployments_url":"https://api.github.com/repos/centricular/meson/deployments","created_at":"2016-03-23T11:53:48Z","updated_at":"2016-12-02T18:57:14Z","pushed_at":"2017-01-14T18:35:51Z","git_url":"git://github.com/centricular/meson.git","ssh_url":"git@github.com:centricular/meson.git","clone_url":"https://github.com/centricular/meson.git","svn_url":"https://github.com/centricular/meson","homepage":"","size":5516,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"gst-msvc"}},"base":{"label":"mesonbuild:master","ref":"master","sha":"eea067087261fbeb19ff12ee6a6def95e0141322","user":{"login":"mesonbuild","id":12551236,"avatar_url":"https://avatars.githubusercontent.com/u/12551236?v=3","gravatar_id":"","url":"https://api.github.com/users/mesonbuild","html_url":"https://github.com/mesonbuild","followers_url":"https://api.github.com/users/mesonbuild/followers","following_url":"https://api.github.com/users/mesonbuild/following{/other_user}","gists_url":"https://api.github.com/users/mesonbuild/gists{/gist_id}","starred_url":"https://api.github.com/users/mesonbuild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesonbuild/subscriptions","organizations_url":"https://api.github.com/users/mesonbuild/orgs","repos_url":"https://api.github.com/users/mesonbuild/repos","events_url":"https://api.github.com/users/mesonbuild/events{/privacy}","received_events_url":"https://api.github.com/users/mesonbuild/received_events","type":"Organization","site_admin":false},"repo":{"id":19784232,"name":"meson","full_name":"mesonbuild/meson","owner":{"login":"mesonbuild","id":12551236,"avatar_url":"https://avatars.githubusercontent.com/u/12551236?v=3","gravatar_id":"","url":"https://api.github.com/users/mesonbuild","html_url":"https://github.com/mesonbuild","followers_url":"https://api.github.com/users/mesonbuild/followers","following_url":"https://api.github.com/users/mesonbuild/following{/other_user}","gists_url":"https://api.github.com/users/mesonbuild/gists{/gist_id}","starred_url":"https://api.github.com/users/mesonbuild/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesonbuild/subscriptions","organizations_url":"https://api.github.com/users/mesonbuild/orgs","repos_url":"https://api.github.com/users/mesonbuild/repos","events_url":"https://api.github.com/users/mesonbuild/events{/privacy}","received_events_url":"https://api.github.com/users/mesonbuild/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mesonbuild/meson","description":"The Meson Build System","fork":false,"url":"https://api.github.com/repos/mesonbuild/meson","forks_url":"https://api.github.com/repos/mesonbuild/meson/forks","keys_url":"https://api.github.com/repos/mesonbuild/meson/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mesonbuild/meson/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mesonbuild/meson/teams","hooks_url":"https://api.github.com/repos/mesonbuild/meson/hooks","issue_events_url":"https://api.github.com/repos/mesonbuild/meson/issues/events{/number}","events_url":"https://api.github.com/repos/mesonbuild/meson/events","assignees_url":"https://api.github.com/repos/mesonbuild/meson/assignees{/user}","branches_url":"https://api.github.com/repos/mesonbuild/meson/branches{/branch}","tags_url":"https://api.github.com/repos/mesonbuild/meson/tags","blobs_url":"https://api.github.com/repos/mesonbuild/meson/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mesonbuild/meson/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mesonbuild/meson/git/refs{/sha}","trees_url":"https://api.github.com/repos/mesonbuild/meson/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mesonbuild/meson/statuses/{sha}","languages_url":"https://api.github.com/repos/mesonbuild/meson/languages","stargazers_url":"https://api.github.com/repos/mesonbuild/meson/stargazers","contributors_url":"https://api.github.com/repos/mesonbuild/meson/contributors","subscribers_url":"https://api.github.com/repos/mesonbuild/meson/subscribers","subscription_url":"https://api.github.com/repos/mesonbuild/meson/subscription","commits_url":"https://api.github.com/repos/mesonbuild/meson/commits{/sha}","git_commits_url":"https://api.github.com/repos/mesonbuild/meson/git/commits{/sha}","comments_url":"https://api.github.com/repos/mesonbuild/meson/comments{/number}","issue_comment_url":"https://api.github.com/repos/mesonbuild/meson/issues/comments{/number}","contents_url":"https://api.github.com/repos/mesonbuild/meson/contents/{+path}","compare_url":"https://api.github.com/repos/mesonbuild/meson/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mesonbuild/meson/merges","archive_url":"https://api.github.com/repos/mesonbuild/meson/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mesonbuild/meson/downloads","issues_url":"https://api.github.com/repos/mesonbuild/meson/issues{/number}","pulls_url":"https://api.github.com/repos/mesonbuild/meson/pulls{/number}","milestones_url":"https://api.github.com/repos/mesonbuild/meson/milestones{/number}","notifications_url":"https://api.github.com/repos/mesonbuild/meson/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mesonbuild/meson/labels{/name}","releases_url":"https://api.github.com/repos/mesonbuild/meson/releases{/id}","deployments_url":"https://api.github.com/repos/mesonbuild/meson/deployments","created_at":"2014-05-14T15:08:16Z","updated_at":"2017-01-14T12:21:46Z","pushed_at":"2017-01-14T18:35:52Z","git_url":"git://github.com/mesonbuild/meson.git","ssh_url":"git@github.com:mesonbuild/meson.git","clone_url":"https://github.com/mesonbuild/meson.git","svn_url":"https://github.com/mesonbuild/meson","homepage":null,"size":5505,"stargazers_count":626,"watchers_count":626,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":106,"mirror_url":null,"open_issues_count":165,"forks":106,"open_issues":165,"watchers":626,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mesonbuild/meson/pulls/1302"},"html":{"href":"https://github.com/mesonbuild/meson/pull/1302"},"issue":{"href":"https://api.github.com/repos/mesonbuild/meson/issues/1302"},"comments":{"href":"https://api.github.com/repos/mesonbuild/meson/issues/1302/comments"},"review_comments":{"href":"https://api.github.com/repos/mesonbuild/meson/pulls/1302/comments"},"review_comment":{"href":"https://api.github.com/repos/mesonbuild/meson/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mesonbuild/meson/pulls/1302/commits"},"statuses":{"href":"https://api.github.com/repos/mesonbuild/meson/statuses/a96ea90c0c87a9eff2b4f7645dda327d7d67d6cc"}}}}
{"actor":{"display_login":"QuLogic"}}