public SnapshotId PublishDirectory(CmdArgsPublishDirectory args) { var ops = GetOperations(); var pubId = Config.DefaultPublisherId; var pub = ops.GetPublisher(pubId); var repo = GetGitDeploymentRepo(); var dirRoot = new DirectoryInfo(args.Path); var comment = args.Comment; if (string.IsNullOrEmpty(comment)) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(" Machine: {0}", Environment.MachineName); sb.AppendLine(); sb.AppendFormat("Directory: {0}", dirRoot.FullName); sb.AppendLine(); sb.AppendFormat(" DateTime: {0}", DateTimeOffset.UtcNow); sb.AppendLine(); sb.AppendFormat(" User: {0}\\{1}", Environment.UserDomainName, Environment.UserName); sb.AppendLine(); comment = sb.ToString(); } var ignoreList = BuildIgnoreList(args.Ignore); Func <FileSystemInfo, bool> filter = fsi => !ignoreList.Contains(fsi.Name) && !IsTopLevelGitRepo(fsi, dirRoot); var snapId = repo.CreateSnapshotFromDirectory(dirRoot, comment, filter); WriteToOutput("Publishing directory to: {0}", pubId); ops.UpdatePublisher(pubId, pubState => { // note that the snapId maybe out of date so we always fetch the latest for the repo. pubState.LatestSnapshotIdToken = repo.GetLatestSnapshotId().Token; }); return(snapId); }
public CmdVerbs() { GetToolVersion = new CmdArgsGetToolVersion(); NewSubscriber = new CmdArgsNewSub(); GetSubscriber = new CmdArgsSubIdOpt(); RemoveSubscriber = new CmdArgsSubIdReq(); SyncSubscriber = new CmdArgsSubIdOpt(); PublishDirectory = new CmdArgsPublishDirectory(); SyncDirectory = new CmdArgsSyncDirectory(); InitalizeSyncState = new CmdArgsInitalizeSyncState(); KuduSync = new KuduSyncOptions(); GetHelp = new CmdArgsGetHelpCommand(); SetSubscriberSiteStatus = new CmdArgsSetSubscriberSiteStatus(); WatchSyncState = new CmdArgsWatchSyncState(); }