{"action":"created","comment":{"url":"https://api.github.com/repos/allenai/pipeline/pulls/comments/37551997","id":37551997,"diff_hunk":"@@ -0,0 +1,111 @@\n+package org.allenai.pipeline\n+\n+import java.net.URI\n+\n+/** A fully parsed script */\n+case class PipeScript(\n+    packages: Seq[PipeScript.Package],\n+    runCommands: Seq[PipeScript.RunCommand]\n+) {\n+\n+  /** Text that can be parsed into this script.\n+    * May not be identical to the text this script was originally parsed from\n+    * Formatting will not be preserved, and variables will be resolved\n+    * @return\n+    */\n+  def scriptText = {\n+    val buffer = new StringBuilder\n+    packages foreach { pkg =>\n+      buffer.append(pkg.scriptText).append(\"\\n\")\n+    }\n+    buffer.append(\"\\n\")\n+    runCommands foreach { step =>\n+      buffer.append(step.scriptText).append(\"\\n\")\n+    }\n+    buffer.mkString\n+  }\n+}\n+\n+object PipeScript {\n+  case class Package(id: String, source: URI) {\n+    def scriptText: String = s\"\"\"package {id:\"${id}\", source:\"${source}\"}\"\"\"\n+  }\n+\n+  /** A single line in a WorkflowScript that maps to a pipeline step\n+    *\n+    * Example StepCommand:\n+    * {{{\n+    * {in:$scripts/ExtractArrows.py} -i {in:./png, id:pngDir} -o {out:arrowDir, type:dir}","path":"src/main/scala/org/allenai/pipeline/Pipescript.scala","position":38,"original_position":38,"commit_id":"70e4ce9bedb94685d22149fcaa9ba430afe56f41","original_commit_id":"70e4ce9bedb94685d22149fcaa9ba430afe56f41","user":{"login":"markschaake","id":181607,"avatar_url":"https://avatars.githubusercontent.com/u/181607?v=3","gravatar_id":"","url":"https://api.github.com/users/markschaake","html_url":"https://github.com/markschaake","followers_url":"https://api.github.com/users/markschaake/followers","following_url":"https://api.github.com/users/markschaake/following{/other_user}","gists_url":"https://api.github.com/users/markschaake/gists{/gist_id}","starred_url":"https://api.github.com/users/markschaake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markschaake/subscriptions","organizations_url":"https://api.github.com/users/markschaake/orgs","repos_url":"https://api.github.com/users/markschaake/repos","events_url":"https://api.github.com/users/markschaake/events{/privacy}","received_events_url":"https://api.github.com/users/markschaake/received_events","type":"User","site_admin":false},"body":"this example is out of date. Needs a `run` prefix","created_at":"2015-08-20T16:42:14Z","updated_at":"2015-08-20T16:42:14Z","html_url":"https://github.com/allenai/pipeline/pull/45#discussion_r37551997","pull_request_url":"https://api.github.com/repos/allenai/pipeline/pulls/45","_links":{"self":{"href":"https://api.github.com/repos/allenai/pipeline/pulls/comments/37551997"},"html":{"href":"https://github.com/allenai/pipeline/pull/45#discussion_r37551997"},"pull_request":{"href":"https://api.github.com/repos/allenai/pipeline/pulls/45"}}},"pull_request":{"url":"https://api.github.com/repos/allenai/pipeline/pulls/45","id":42950805,"html_url":"https://github.com/allenai/pipeline/pull/45","diff_url":"https://github.com/allenai/pipeline/pull/45.diff","patch_url":"https://github.com/allenai/pipeline/pull/45.patch","issue_url":"https://api.github.com/repos/allenai/pipeline/issues/45","number":45,"state":"open","locked":false,"title":"PipeScript implementation from hackathon","user":{"login":"rodneykinney","id":3767011,"avatar_url":"https://avatars.githubusercontent.com/u/3767011?v=3","gravatar_id":"","url":"https://api.github.com/users/rodneykinney","html_url":"https://github.com/rodneykinney","followers_url":"https://api.github.com/users/rodneykinney/followers","following_url":"https://api.github.com/users/rodneykinney/following{/other_user}","gists_url":"https://api.github.com/users/rodneykinney/gists{/gist_id}","starred_url":"https://api.github.com/users/rodneykinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodneykinney/subscriptions","organizations_url":"https://api.github.com/users/rodneykinney/orgs","repos_url":"https://api.github.com/users/rodneykinney/repos","events_url":"https://api.github.com/users/rodneykinney/events{/privacy}","received_events_url":"https://api.github.com/users/rodneykinney/received_events","type":"User","site_admin":false},"body":"This is PipeScript, ready for real-world use.","created_at":"2015-08-20T16:38:15Z","updated_at":"2015-08-20T16:42:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"71a03c8b417877d91714ce4e0199676984ea470a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/allenai/pipeline/pulls/45/commits","review_comments_url":"https://api.github.com/repos/allenai/pipeline/pulls/45/comments","review_comment_url":"https://api.github.com/repos/allenai/pipeline/pulls/comments{/number}","comments_url":"https://api.github.com/repos/allenai/pipeline/issues/45/comments","statuses_url":"https://api.github.com/repos/allenai/pipeline/statuses/70e4ce9bedb94685d22149fcaa9ba430afe56f41","head":{"label":"rodneykinney:merge-hackathon","ref":"merge-hackathon","sha":"70e4ce9bedb94685d22149fcaa9ba430afe56f41","user":{"login":"rodneykinney","id":3767011,"avatar_url":"https://avatars.githubusercontent.com/u/3767011?v=3","gravatar_id":"","url":"https://api.github.com/users/rodneykinney","html_url":"https://github.com/rodneykinney","followers_url":"https://api.github.com/users/rodneykinney/followers","following_url":"https://api.github.com/users/rodneykinney/following{/other_user}","gists_url":"https://api.github.com/users/rodneykinney/gists{/gist_id}","starred_url":"https://api.github.com/users/rodneykinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodneykinney/subscriptions","organizations_url":"https://api.github.com/users/rodneykinney/orgs","repos_url":"https://api.github.com/users/rodneykinney/repos","events_url":"https://api.github.com/users/rodneykinney/events{/privacy}","received_events_url":"https://api.github.com/users/rodneykinney/received_events","type":"User","site_admin":false},"repo":{"id":32085607,"name":"pipeline","full_name":"rodneykinney/pipeline","owner":{"login":"rodneykinney","id":3767011,"avatar_url":"https://avatars.githubusercontent.com/u/3767011?v=3","gravatar_id":"","url":"https://api.github.com/users/rodneykinney","html_url":"https://github.com/rodneykinney","followers_url":"https://api.github.com/users/rodneykinney/followers","following_url":"https://api.github.com/users/rodneykinney/following{/other_user}","gists_url":"https://api.github.com/users/rodneykinney/gists{/gist_id}","starred_url":"https://api.github.com/users/rodneykinney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodneykinney/subscriptions","organizations_url":"https://api.github.com/users/rodneykinney/orgs","repos_url":"https://api.github.com/users/rodneykinney/repos","events_url":"https://api.github.com/users/rodneykinney/events{/privacy}","received_events_url":"https://api.github.com/users/rodneykinney/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rodneykinney/pipeline","description":"Library for building reproducible data pipelines to support experimentation","fork":true,"url":"https://api.github.com/repos/rodneykinney/pipeline","forks_url":"https://api.github.com/repos/rodneykinney/pipeline/forks","keys_url":"https://api.github.com/repos/rodneykinney/pipeline/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rodneykinney/pipeline/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rodneykinney/pipeline/teams","hooks_url":"https://api.github.com/repos/rodneykinney/pipeline/hooks","issue_events_url":"https://api.github.com/repos/rodneykinney/pipeline/issues/events{/number}","events_url":"https://api.github.com/repos/rodneykinney/pipeline/events","assignees_url":"https://api.github.com/repos/rodneykinney/pipeline/assignees{/user}","branches_url":"https://api.github.com/repos/rodneykinney/pipeline/branches{/branch}","tags_url":"https://api.github.com/repos/rodneykinney/pipeline/tags","blobs_url":"https://api.github.com/repos/rodneykinney/pipeline/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rodneykinney/pipeline/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rodneykinney/pipeline/git/refs{/sha}","trees_url":"https://api.github.com/repos/rodneykinney/pipeline/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rodneykinney/pipeline/statuses/{sha}","languages_url":"https://api.github.com/repos/rodneykinney/pipeline/languages","stargazers_url":"https://api.github.com/repos/rodneykinney/pipeline/stargazers","contributors_url":"https://api.github.com/repos/rodneykinney/pipeline/contributors","subscribers_url":"https://api.github.com/repos/rodneykinney/pipeline/subscribers","subscription_url":"https://api.github.com/repos/rodneykinney/pipeline/subscription","commits_url":"https://api.github.com/repos/rodneykinney/pipeline/commits{/sha}","git_commits_url":"https://api.github.com/repos/rodneykinney/pipeline/git/commits{/sha}","comments_url":"https://api.github.com/repos/rodneykinney/pipeline/comments{/number}","issue_comment_url":"https://api.github.com/repos/rodneykinney/pipeline/issues/comments{/number}","contents_url":"https://api.github.com/repos/rodneykinney/pipeline/contents/{+path}","compare_url":"https://api.github.com/repos/rodneykinney/pipeline/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rodneykinney/pipeline/merges","archive_url":"https://api.github.com/repos/rodneykinney/pipeline/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rodneykinney/pipeline/downloads","issues_url":"https://api.github.com/repos/rodneykinney/pipeline/issues{/number}","pulls_url":"https://api.github.com/repos/rodneykinney/pipeline/pulls{/number}","milestones_url":"https://api.github.com/repos/rodneykinney/pipeline/milestones{/number}","notifications_url":"https://api.github.com/repos/rodneykinney/pipeline/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rodneykinney/pipeline/labels{/name}","releases_url":"https://api.github.com/repos/rodneykinney/pipeline/releases{/id}","created_at":"2015-03-12T15:46:16Z","updated_at":"2015-03-30T21:54:04Z","pushed_at":"2015-08-20T16:31:43Z","git_url":"git://github.com/rodneykinney/pipeline.git","ssh_url":"git@github.com:rodneykinney/pipeline.git","clone_url":"https://github.com/rodneykinney/pipeline.git","svn_url":"https://github.com/rodneykinney/pipeline","homepage":"","size":1223,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"allenai:master","ref":"master","sha":"843e60564ec691fd0f3a2b80fed9578d23465600","user":{"login":"allenai","id":5667695,"avatar_url":"https://avatars.githubusercontent.com/u/5667695?v=3","gravatar_id":"","url":"https://api.github.com/users/allenai","html_url":"https://github.com/allenai","followers_url":"https://api.github.com/users/allenai/followers","following_url":"https://api.github.com/users/allenai/following{/other_user}","gists_url":"https://api.github.com/users/allenai/gists{/gist_id}","starred_url":"https://api.github.com/users/allenai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allenai/subscriptions","organizations_url":"https://api.github.com/users/allenai/orgs","repos_url":"https://api.github.com/users/allenai/repos","events_url":"https://api.github.com/users/allenai/events{/privacy}","received_events_url":"https://api.github.com/users/allenai/received_events","type":"Organization","site_admin":false},"repo":{"id":31559978,"name":"pipeline","full_name":"allenai/pipeline","owner":{"login":"allenai","id":5667695,"avatar_url":"https://avatars.githubusercontent.com/u/5667695?v=3","gravatar_id":"","url":"https://api.github.com/users/allenai","html_url":"https://github.com/allenai","followers_url":"https://api.github.com/users/allenai/followers","following_url":"https://api.github.com/users/allenai/following{/other_user}","gists_url":"https://api.github.com/users/allenai/gists{/gist_id}","starred_url":"https://api.github.com/users/allenai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allenai/subscriptions","organizations_url":"https://api.github.com/users/allenai/orgs","repos_url":"https://api.github.com/users/allenai/repos","events_url":"https://api.github.com/users/allenai/events{/privacy}","received_events_url":"https://api.github.com/users/allenai/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/allenai/pipeline","description":"Library for building reproducible data pipelines to support experimentation","fork":false,"url":"https://api.github.com/repos/allenai/pipeline","forks_url":"https://api.github.com/repos/allenai/pipeline/forks","keys_url":"https://api.github.com/repos/allenai/pipeline/keys{/key_id}","collaborators_url":"https://api.github.com/repos/allenai/pipeline/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/allenai/pipeline/teams","hooks_url":"https://api.github.com/repos/allenai/pipeline/hooks","issue_events_url":"https://api.github.com/repos/allenai/pipeline/issues/events{/number}","events_url":"https://api.github.com/repos/allenai/pipeline/events","assignees_url":"https://api.github.com/repos/allenai/pipeline/assignees{/user}","branches_url":"https://api.github.com/repos/allenai/pipeline/branches{/branch}","tags_url":"https://api.github.com/repos/allenai/pipeline/tags","blobs_url":"https://api.github.com/repos/allenai/pipeline/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/allenai/pipeline/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/allenai/pipeline/git/refs{/sha}","trees_url":"https://api.github.com/repos/allenai/pipeline/git/trees{/sha}","statuses_url":"https://api.github.com/repos/allenai/pipeline/statuses/{sha}","languages_url":"https://api.github.com/repos/allenai/pipeline/languages","stargazers_url":"https://api.github.com/repos/allenai/pipeline/stargazers","contributors_url":"https://api.github.com/repos/allenai/pipeline/contributors","subscribers_url":"https://api.github.com/repos/allenai/pipeline/subscribers","subscription_url":"https://api.github.com/repos/allenai/pipeline/subscription","commits_url":"https://api.github.com/repos/allenai/pipeline/commits{/sha}","git_commits_url":"https://api.github.com/repos/allenai/pipeline/git/commits{/sha}","comments_url":"https://api.github.com/repos/allenai/pipeline/comments{/number}","issue_comment_url":"https://api.github.com/repos/allenai/pipeline/issues/comments{/number}","contents_url":"https://api.github.com/repos/allenai/pipeline/contents/{+path}","compare_url":"https://api.github.com/repos/allenai/pipeline/compare/{base}...{head}","merges_url":"https://api.github.com/repos/allenai/pipeline/merges","archive_url":"https://api.github.com/repos/allenai/pipeline/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/allenai/pipeline/downloads","issues_url":"https://api.github.com/repos/allenai/pipeline/issues{/number}","pulls_url":"https://api.github.com/repos/allenai/pipeline/pulls{/number}","milestones_url":"https://api.github.com/repos/allenai/pipeline/milestones{/number}","notifications_url":"https://api.github.com/repos/allenai/pipeline/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/allenai/pipeline/labels{/name}","releases_url":"https://api.github.com/repos/allenai/pipeline/releases{/id}","created_at":"2015-03-02T19:57:02Z","updated_at":"2015-07-16T17:20:03Z","pushed_at":"2015-08-20T16:38:16Z","git_url":"git://github.com/allenai/pipeline.git","ssh_url":"git@github.com:allenai/pipeline.git","clone_url":"https://github.com/allenai/pipeline.git","svn_url":"https://github.com/allenai/pipeline","homepage":"","size":1423,"stargazers_count":3,"watchers_count":3,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":8,"mirror_url":null,"open_issues_count":4,"forks":8,"open_issues":4,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/allenai/pipeline/pulls/45"},"html":{"href":"https://github.com/allenai/pipeline/pull/45"},"issue":{"href":"https://api.github.com/repos/allenai/pipeline/issues/45"},"comments":{"href":"https://api.github.com/repos/allenai/pipeline/issues/45/comments"},"review_comments":{"href":"https://api.github.com/repos/allenai/pipeline/pulls/45/comments"},"review_comment":{"href":"https://api.github.com/repos/allenai/pipeline/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/allenai/pipeline/pulls/45/commits"},"statuses":{"href":"https://api.github.com/repos/allenai/pipeline/statuses/70e4ce9bedb94685d22149fcaa9ba430afe56f41"}}}}