UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

506 lines (244 loc) 30.7 kB
/*** Generated by streamline 0.10.17 (callbacks) - DO NOT EDIT ***/ var __rt=require('streamline/lib/callbacks/runtime').runtime(__filename, false),__func=__rt.__func,__cb=__rt.__cb,__catch=__rt.__catch,__tryCatch=__rt.__tryCatch,__forIn=__rt.__forIn; var url = require("url"); var fs = require("fs"); var util = require("util"); var GitHubApi = require("github"); var utils = require("../utils"); var $ = utils.getLocaleString; var WebsitesClient = require("../../commands/asm/websites/websitesclient"); var child_process = require("child_process"); exports.createClient = function(cli, name, websitesClient) { switch (name) { case "github": return new GithubClient(cli, websitesClient); case "git": return new GitClient(cli, websitesClient); default: throw new Error("Invalid client"); };}; exports.LinkedRevisionControlClient = LinkedRevisionControlClient; exports.GithubClient = GithubClient; exports.GitClient = GitClient; function LinkedRevisionControlClient(cli, websitesClient) { this.cli = cli; this.websitesClient = websitesClient; this.log = cli.output;}; LinkedRevisionControlClient._getRepository = function(repositories, remoteFullName) { return repositories.filter(function(repository) { return (repository.full_name === remoteFullName); })[0];}; LinkedRevisionControlClient._getRepositoryCloneUrl = function(repositories, remoteUri) { return repositories.filter(function(repository) { return repositoryMatchUri(repository, remoteUri); })[0];}; function repositoryMatchUri(repository, remoteUri) { var cleanUri = url.parse(remoteUri); delete cleanUri.auth; cleanUri = url.format(cleanUri); return ((((repository.clone_url.toLowerCase() === cleanUri.toLowerCase()) || (repository.html_url.toLowerCase() === cleanUri.toLowerCase())) || (repository.ssh_url.toLowerCase() === cleanUri.toLowerCase())) || (repository.git_url.toLowerCase() === cleanUri.toLowerCase()));}; LinkedRevisionControlClient.prototype.determineIfCurrentDirectoryIsGitWorkingTree = function LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1(context, _) { var isInsideWorkTree, lines, __this = this; var __frame = { name: "LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1", line: 92 }; return __func(_, this, arguments, LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1, 1, __frame, function __$LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1() { __this.log.silly("determineIfCurrentDirectoryIsGitWorkingTree"); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1() { return __this._exec("git rev-parse --git-dir", __cb(_, __frame, 4, 32, function ___(__0, __1) { isInsideWorkTree = __1; lines = (isInsideWorkTree.stdout + isInsideWorkTree.stderr); if (!context.flags) { context.flags = { }; } ; context.flags.isGitWorkingTree = lines.split("\n").some(function(line) { return (line === ".git"); }); __then(); }, true)); }); })(function ___(err, __result) { __catch(function __$LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1() { if (err) { context.flags.isGitWorkingTree = false; __then(); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$LinkedRevisionControlClient_prototype_determineIfCurrentDirectoryIsGitWorkingTree__1() { _(); }); }); });}; LinkedRevisionControlClient.prototype.scaffoldGitIgnore = function LinkedRevisionControlClient_prototype_scaffoldGitIgnore__2(_) { var __frame = { name: "LinkedRevisionControlClient_prototype_scaffoldGitIgnore__2", line: 110 }; return __func(_, this, arguments, LinkedRevisionControlClient_prototype_scaffoldGitIgnore__2, 0, __frame, function __$LinkedRevisionControlClient_prototype_scaffoldGitIgnore__2() { return (function __$LinkedRevisionControlClient_prototype_scaffoldGitIgnore__2(__then) { if (!fs.existsSync(".gitignore")) { return fs.writeFile(".gitignore", "node_modules\nazure.err\n*.publishsettings", __cb(_, __frame, 2, 7, __then, true)); } else { __then(); } ; })(_); });}; LinkedRevisionControlClient.prototype.initGitOnCurrentDirectory = function LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3(context, scaffold, _) { var __this = this; var __frame = { name: "LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3", line: 119 }; return __func(_, this, arguments, LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3, 2, __frame, function __$LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3() { __this.log.silly("initGitOnCurrentDirectoryIfNeeded"); return (function __$LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3(__then) { if (!context.flags.isGitWorkingTree) { __this.log.info("Executing `git init`"); return __this._exec("git init", __cb(_, __frame, 4, 9, function __$LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3() { context.flags.isGitWorkingTree = true; __then(); }, true)); } else { __then(); } ; })(function __$LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3() { return (function __$LinkedRevisionControlClient_prototype_initGitOnCurrentDirectory__3(__then) { if (scaffold) { return __this.scaffoldGitIgnore(__cb(_, __frame, 10, 9, __then, true)); } else { __then(); } ; })(_); }); });}; LinkedRevisionControlClient.prototype._exec = function(cmd, cb) { child_process.exec(cmd, function(err, stdout, stderr) { cb(err, { stdout: stdout, stderr: stderr }); });}; LinkedRevisionControlClient.prototype._initializeRemoteRepos = function LinkedRevisionControlClient_prototype__initializeRemoteRepos__4(context, _) { var self, __this = this; var __frame = { name: "LinkedRevisionControlClient_prototype__initializeRemoteRepos__4", line: 142 }; return __func(_, this, arguments, LinkedRevisionControlClient_prototype__initializeRemoteRepos__4, 1, __frame, function __$LinkedRevisionControlClient_prototype__initializeRemoteRepos__4() { self = __this; self.log.silly("InitializeRemoteRepo"); return (function __$LinkedRevisionControlClient_prototype__initializeRemoteRepos__4(__then) { if (!context.flags.siteExists) { return self.websitesClient.createRepository(context, __cb(_, __frame, 5, 24, function __$LinkedRevisionControlClient_prototype__initializeRemoteRepos__4() { return self.websitesClient.getRepository(context, __cb(_, __frame, 6, 39, function ___(__0, __1) { context.repo = __1; __then(); }, true)); }, true)); } else { return self.websitesClient.getRepository(context, __cb(_, __frame, 8, 39, function ___(__0, __2) { context.repo = __2; return (function __$LinkedRevisionControlClient_prototype__initializeRemoteRepos__4(__then) { if (!context.repo) { return self.websitesClient.createRepository(context, __cb(_, __frame, 10, 26, function __$LinkedRevisionControlClient_prototype__initializeRemoteRepos__4() { return self.websitesClient.getRepository(context, __cb(_, __frame, 11, 41, function ___(__0, __3) { context.repo = __3; __then(); }, true)); }, true)); } else { __then(); } ; })(__then); }, true)); } ; })(function __$LinkedRevisionControlClient_prototype__initializeRemoteRepos__4() { self.log.silly("context.repo", context.repo); _(); }); });}; LinkedRevisionControlClient.prototype._addRemotesToLocalGitRepo = function LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5(context, _) { var self, remotes, azureExists, gitUri, __this = this; var __frame = { name: "LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5", line: 160 }; return __func(_, this, arguments, LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5, 1, __frame, function __$LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5() { self = __this; if (context.site.slot) { context.site.localGitRemote = util.format("azure-%s", context.site.slot); } else { context.site.localGitRemote = "azure"; } ; self.log.silly("addRemoteToLocalGitRepo"); if (!context.flags.isGitWorkingTree) { self.log.info((("To create a local git repository to publish to the remote site, please rerun this command with the --git flag: \"azure site create " + ((((context.site && context.site.name)) || "{site name}"))) + " --git\".")); return _(null); } ; return (function __$LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5(__then) { if (!context.publishingUser) { return self.websitesClient.getPublishingUsers(context, __cb(_, __frame, 16, 50, function ___(__0, __1) { context.publishingUsers = __1; return self.websitesClient.getPublishingUser(context, __cb(_, __frame, 17, 49, function ___(__0, __2) { context.publishingUser = __2; __then(); }, true)); }, true)); } else { __then(); } ; })(function __$LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5() { self.log.verbose($("Detecting git and local git folder")); return __this._exec("git remote", __cb(_, __frame, 21, 21, function ___(__0, __3) { remotes = __3; azureExists = ((remotes.stdout + remotes.stderr)).split("\n").some(function(item) { return (item === context.site.localGitRemote); }); return (function __$LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5(__then) { if (azureExists) { self.log.verbose(util.format($("Removing existing %s remote alias"), context.site.localGitRemote)); return __this._exec(util.format("git remote rm %s", context.site.localGitRemote), __cb(_, __frame, 28, 9, __then, true)); } else { __then(); } ; })(function __$LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5() { gitUri = self.websitesClient.getGitUri(context.repo, context.site.name, context.publishingUser); self.log.info(util.format($("Executing `git remote add %s %s`"), context.site.localGitRemote, gitUri)); return __this._exec(util.format("git remote add %s %s", context.site.localGitRemote, gitUri), __cb(_, __frame, 33, 7, function __$LinkedRevisionControlClient_prototype__addRemotesToLocalGitRepo__5() { self.log.info(util.format($("A new remote, '%s', has been added to your local git repository"), context.site.localGitRemote)); self.log.info(util.format($("Use git locally to make changes to your site, commit, and then use 'git push %s master' to deploy to Azure"), context.site.localGitRemote)); _(); }, true)); }); }, true)); }); });}; function GitClient(cli, websitesClient) { GitClient.super_.call(this, cli, websitesClient);}; util.inherits(GitClient, LinkedRevisionControlClient); GitClient.prototype.init = function GitClient_prototype_init__6(context, _) { var __this = this; var __frame = { name: "GitClient_prototype_init__6", line: 204 }; return __func(_, this, arguments, GitClient_prototype_init__6, 1, __frame, function __$GitClient_prototype_init__6() { return __this.determineIfCurrentDirectoryIsGitWorkingTree(context, __cb(_, __frame, 1, 7, function __$GitClient_prototype_init__6() { return __this.initGitOnCurrentDirectory(context, true, __cb(_, __frame, 2, 7, function __$GitClient_prototype_init__6() { _(); }, true)); }, true)); });}; GitClient.prototype.deploy = function GitClient_prototype_deploy__7(context, _) { var self, __this = this; var __frame = { name: "GitClient_prototype_deploy__7", line: 210 }; return __func(_, this, arguments, GitClient_prototype_deploy__7, 1, __frame, function __$GitClient_prototype_deploy__7() { self = __this; return self._initializeRemoteRepos(context, __cb(_, __frame, 3, 7, function __$GitClient_prototype_deploy__7() { return self._addRemotesToLocalGitRepo(context, __cb(_, __frame, 4, 7, function __$GitClient_prototype_deploy__7() { _(); }, true)); }, true)); });}; function GithubClient(cli, websitesClient) { GithubClient.super_.call(this, cli, websitesClient); this.client = new GitHubApi({ version: "3.0.0" });}; util.inherits(GithubClient, LinkedRevisionControlClient); GithubClient.prototype.authenticate = function GithubClient_prototype_authenticate__8(context, _) { var __this = this; var __frame = { name: "GithubClient_prototype_authenticate__8", line: 225 }; return __func(_, this, arguments, GithubClient_prototype_authenticate__8, 1, __frame, function __$GithubClient_prototype_authenticate__8() { return __this.ensureCredentials(context, __cb(_, __frame, 1, 7, function __$GithubClient_prototype_authenticate__8() { __this.client.authenticate({ type: "basic", username: context.github.username, password: context.github.password }); _(); }, true)); });}; GithubClient.prototype.authenticateAuth = function GithubClient_prototype_authenticateAuth__9(context, _) { var oauthToken, __this = this; var __frame = { name: "GithubClient_prototype_authenticateAuth__9", line: 235 }; return __func(_, this, arguments, GithubClient_prototype_authenticateAuth__9, 1, __frame, function __$GithubClient_prototype_authenticateAuth__9() { return __this.ensureCredentials(context, __cb(_, __frame, 1, 7, function __$GithubClient_prototype_authenticateAuth__9() { __this.client.authenticate({ type: "basic", username: context.github.username, password: context.github.password }); return __this.client.oauth.createAuthorization({ user: context.github.username }, __cb(_, __frame, 10, 37, function ___(__0, __1) { oauthToken = __1; __this.client.authenticate({ type: "oauth", token: oauthToken.token }); _(); }, true)); }, true)); });}; GithubClient.prototype.ensureCredentials = function GithubClient_prototype_ensureCredentials__10(context, _) { var __this = this; var __frame = { name: "GithubClient_prototype_ensureCredentials__10", line: 252 }; return __func(_, this, arguments, GithubClient_prototype_ensureCredentials__10, 1, __frame, function __$GithubClient_prototype_ensureCredentials__10() { if (!context.github) { context.github = { }; } ; if ((!context.github.username || !context.github.password)) { __this.log.help("Enter your github credentials"); } ; return (function __$GithubClient_prototype_ensureCredentials__10(__then) { if (!context.github.username) { return __this.cli.interaction.prompt("Username: ", __cb(_, __frame, 10, 51, function ___(__0, __1) { context.github.username = __1; __then(); }, true)); } else { __then(); } ; })(function __$GithubClient_prototype_ensureCredentials__10() { return (function __$GithubClient_prototype_ensureCredentials__10(__then) { if (!context.github.password) { return __this.cli.interaction.promptPasswordOnce("Password: ", __cb(_, __frame, 14, 51, function ___(__0, __2) { context.github.password = __2; __then(); }, true)); } else { __then(); } ; })(_); }); });}; GithubClient.prototype.init = function GithubClient_prototype_init__11(context, _) { var repositories, remoteUris, resultingRepositories, __this = this; var __frame = { name: "GithubClient_prototype_init__11", line: 270 }; return __func(_, this, arguments, GithubClient_prototype_init__11, 1, __frame, function __$GithubClient_prototype_init__11() { return __this.authenticate(context, __cb(_, __frame, 1, 7, function __$GithubClient_prototype_init__11() { return __this.determineIfCurrentDirectoryIsGitWorkingTree(context, __cb(_, __frame, 4, 7, function __$GithubClient_prototype_init__11() { return __this.getRepositories(context.github.username, __cb(_, __frame, 7, 26, function ___(__0, __1) { repositories = __1; return (function __$GithubClient_prototype_init__11(__then) { if (context.github.repositoryFullName) { context.github.repository = LinkedRevisionControlClient._getRepository(repositories, context.github.repositoryFullName); if (!context.github.repository) { __this.log.info(("Invalid repository " + context.github.repositoryFullName)); } ; __then(); } else { return (function __$GithubClient_prototype_init__11(__then) { if ((context.flags.isGitWorkingTree && !((context.flags && context.flags.forceRepositorySelection)))) { return __this._getRemoteUris(__cb(_, __frame, 19, 26, function ___(__0, __2) { remoteUris = __2; if ((remoteUris.length === 1)) { context.github.repository = LinkedRevisionControlClient._getRepositoryCloneUrl(repositories, remoteUris[0]); } else { if ((remoteUris.length > 0)) { resultingRepositories = repositories.filter(function(repository) { return remoteUris.some(function(remoteUri) { return repositoryMatchUri(repository, remoteUri); }); }); if ((resultingRepositories.length > 0)) { repositories = resultingRepositories; } ; if ((repositories.length !== remoteUris.length)) { __this.log.info("Some remote URIs were ignored. Currently only public repositories are supported."); } ; if ((repositories.length === 1)) { context.github.repository = repositories[0]; } ; } ; } ; __then(); }, true)); } else { __then(); } ; })(__then); } ; })(function __$GithubClient_prototype_init__11() { return (function __$GithubClient_prototype_init__11(__then) { if (!context.github.repository) { __this.log.help("Choose a repository (or hit ctrl-c to exit)"); return __this.cli.interaction.choose(repositories.map(function(repository) { return repository.full_name; }), __cb(_, __frame, 48, 66, function ___(__0, __3) { context.github.repository = repositories[__3]; __then(); }, true)); } else { __then(); } ; })(_); }); }, true)); }, true)); }, true)); });}; GithubClient.prototype.deploy = function GithubClient_prototype_deploy__12(context, _) { var self, __this = this; var __frame = { name: "GithubClient_prototype_deploy__12", line: 324 }; return __func(_, this, arguments, GithubClient_prototype_deploy__12, 1, __frame, function __$GithubClient_prototype_deploy__12() { self = __this; return self._initializeRemoteRepos(context, __cb(_, __frame, 3, 7, function __$GithubClient_prototype_deploy__12() { return self.websitesClient.ensureRepositoryUri(context, __cb(_, __frame, 4, 22, function __$GithubClient_prototype_deploy__12() { return context.lvcClient.createOrUpdateHook(context.github.repository.owner.login, context.github.repository.name, context.repositoryUri, context.repositoryAuth, __cb(_, __frame, 7, 20, function __$GithubClient_prototype_deploy__12() { _(); }, true)); }, true)); }, true)); });}; GithubClient.prototype.getRepositories = function GithubClient_prototype_getRepositories__13(username, _) { var progress, userRepos, orgRepos, orgs, i, org, repos, __this = this; function sortByFullName(repositoryA, repositoryB) { return repositoryA.full_name.toLowerCase().localeCompare(repositoryB.full_name.toLowerCase()); }; function filterPrivate(repository) { return (repository["private"] !== true); }; var __frame = { name: "GithubClient_prototype_getRepositories__13", line: 338 }; return __func(_, this, arguments, GithubClient_prototype_getRepositories__13, 1, __frame, function __$GithubClient_prototype_getRepositories__13() { progress = __this.cli.interaction.progress("Retrieving repositories"); userRepos = []; return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$GithubClient_prototype_getRepositories__13() { return __this.client.repos.getFromUser({ user: username }, __cb(_, __frame, 14, 34, function ___(__0, __3) { userRepos = __3.filter(filterPrivate).sort(sortByFullName); return __this.client.orgs.getFromUser({ user: username }, __cb(_, __frame, 19, 32, function ___(__0, __4) { orgs = __4; return (function __$GithubClient_prototype_getRepositories__13(__then) { if (orgs) { orgRepos = []; var __1 = __forIn(orgs); var __2 = 0; return (function ___(__break) { var __more; var __loop = __cb(_, __frame, 0, 0, function __$GithubClient_prototype_getRepositories__13() { __more = false; var __8 = (__2 < __1.length); if (__8) { i = __1[__2++]; return (function __$GithubClient_prototype_getRepositories__13(__then) { if (orgs.hasOwnProperty(i)) { org = orgs[i]; return (function __$GithubClient_prototype_getRepositories__13(__then) { if (org.login) { return __this.client.repos.getFromOrg({ org: org.login, sort: "updated", desc: "desc" }, __cb(_, __frame, 26, 42, function ___(__0, __5) { repos = __5; orgRepos = orgRepos.concat(repos); __then(); }, true)); } else { __then(); } ; })(__then); } else { __then(); } ; })(function __$GithubClient_prototype_getRepositories__13() { while (__more) { __loop(); }; __more = true; }); } else { __break(); } ; }); do { __loop(); } while (__more); __more = true; })(__then); } else { __then(); } ; })(function __$GithubClient_prototype_getRepositories__13() { orgRepos = orgRepos.filter(filterPrivate).sort(sortByFullName); userRepos = userRepos.concat(orgRepos); _(null, null, true); }); }, true)); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$GithubClient_prototype_getRepositories__13() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$GithubClient_prototype_getRepositories__13() { return _(null, userRepos); }); }); });}; GithubClient.prototype.createOrUpdateHook = function GithubClient_prototype_createOrUpdateHook__14(username, repository, websitesRepositoryUri, websitesRepositoryAuth, _) { var parsedRepositoryUri, deployUri, hooks, existingHook, newHook, __this = this; var __frame = { name: "GithubClient_prototype_createOrUpdateHook__14", line: 381 }; return __func(_, this, arguments, GithubClient_prototype_createOrUpdateHook__14, 4, __frame, function __$GithubClient_prototype_createOrUpdateHook__14() { parsedRepositoryUri = url.parse(websitesRepositoryUri); parsedRepositoryUri.auth = websitesRepositoryAuth; parsedRepositoryUri.pathname = "/deploy"; deployUri = url.format(parsedRepositoryUri).replace("https://%24", "https://$"); return __this.getHooks(username, repository, __cb(_, __frame, 12, 19, function ___(__0, __1) { hooks = __1; existingHook = hooks.filter(function(hook) { if (hook.config) { return ((hook.name === "web") && (url.parse(hook.config.url).hostname.toLowerCase() === parsedRepositoryUri.hostname.toLowerCase())); } ; return false; })[0]; return (function __$GithubClient_prototype_createOrUpdateHook__14(__then) { if (existingHook) { return (function __$GithubClient_prototype_createOrUpdateHook__14(__then) { if ((existingHook.config.url.toLowerCase() !== deployUri.toLowerCase())) { existingHook.config.url = deployUri; existingHook.user = username; existingHook.repo = repository; return __this.updateHook(existingHook, __cb(_, __frame, 28, 26, function ___(__0, __2) { existingHook = __2; existingHook.user = username; existingHook.repo = repository; return __this.testHook(existingHook, __cb(_, __frame, 31, 11, __then, true)); }, true)); } else { __this.log.info("Link already established"); __then(); } ; })(__then); } else { newHook = { name: "web", user: username, repo: repository, active: true, events: ["push",], config: { url: deployUri, insecure_ssl: "1", content_type: "form" } }; return __this.createHook(newHook, __cb(_, __frame, 50, 19, function ___(__0, __3) { newHook = __3; newHook.user = username; newHook.repo = repository; return __this.testHook(newHook, __cb(_, __frame, 53, 9, __then, true)); }, true)); } ; })(_); }, true)); });}; GithubClient.prototype.createHook = function GithubClient_prototype_createHook__15(hook, _) { var progress, __this = this; var __frame = { name: "GithubClient_prototype_createHook__15", line: 438 }; return __func(_, this, arguments, GithubClient_prototype_createHook__15, 1, __frame, function __$GithubClient_prototype_createHook__15() { progress = __this.cli.interaction.progress("Creating new hook"); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$GithubClient_prototype_createHook__15() { return __this.client.repos.createHook(hook, __cb(_, __frame, 4, 29, _, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$GithubClient_prototype_createHook__15() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$GithubClient_prototype_createHook__15() { _(); }); }); });}; GithubClient.prototype.updateHook = function GithubClient_prototype_updateHook__16(hook, _) { var progress, __this = this; var __frame = { name: "GithubClient_prototype_updateHook__16", line: 448 }; return __func(_, this, arguments, GithubClient_prototype_updateHook__16, 1, __frame, function __$GithubClient_prototype_updateHook__16() { progress = __this.cli.interaction.progress("Updating hook"); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$GithubClient_prototype_updateHook__16() { return __this.client.repos.updateHook(hook, __cb(_, __frame, 4, 29, _, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$GithubClient_prototype_updateHook__16() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$GithubClient_prototype_updateHook__16() { _(); }); }); });}; GithubClient.prototype.testHook = function GithubClient_prototype_testHook__17(hook, _) { var progress, __this = this; var __frame = { name: "GithubClient_prototype_testHook__17", line: 458 }; return __func(_, this, arguments, GithubClient_prototype_testHook__17, 1, __frame, function __$GithubClient_prototype_testHook__17() { progress = __this.cli.interaction.progress("Testing hook"); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$GithubClient_prototype_testHook__17() { return __this.client.repos.testHook(hook, __cb(_, __frame, 4, 22, function __$GithubClient_prototype_testHook__17() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$GithubClient_prototype_testHook__17() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$GithubClient_prototype_testHook__17() { _(); }); }); });}; GithubClient.prototype.getHooks = function GithubClient_prototype_getHooks__18(username, repository, _) { var progress, __this = this; var __frame = { name: "GithubClient_prototype_getHooks__18", line: 468 }; return __func(_, this, arguments, GithubClient_prototype_getHooks__18, 2, __frame, function __$GithubClient_prototype_getHooks__18() { progress = __this.cli.interaction.progress("Retrieving website hooks"); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$GithubClient_prototype_getHooks__18() { return __this.client.repos.getHooks({ user: username, repo: repository }, __cb(_, __frame, 4, 29, _, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$GithubClient_prototype_getHooks__18() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$GithubClient_prototype_getHooks__18() { _(); }); }); });}; GithubClient.prototype._getRemoteUris = function GithubClient_prototype__getRemoteUris__19(_) { var progress, remoteUris, remotes, __this = this; var __frame = { name: "GithubClient_prototype__getRemoteUris__19", line: 481 }; return __func(_, this, arguments, GithubClient_prototype__getRemoteUris__19, 0, __frame, function __$GithubClient_prototype__getRemoteUris__19() { progress = __this.cli.interaction.progress("Retrieving local git repositories"); remoteUris = []; return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$GithubClient_prototype__getRemoteUris__19() { return __this._exec("git remote -v", __cb(_, __frame, 5, 23, function ___(__0, __1) { remotes = __1; remoteUris = ((remotes.stdout + remotes.stderr)).split("\n").filter(function(line) { return (line.length > 0); }).map(function(item) { return item.split(" ")[1].split(" ")[0]; }); remoteUris = removeDuplicates(remoteUris); _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$GithubClient_prototype__getRemoteUris__19() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$GithubClient_prototype__getRemoteUris__19() { return _(null, remoteUris); }); }); });}; function removeDuplicates(array) { return array.filter(function(elem, pos) { return (array.indexOf(elem) === pos); });};