Exemple #1
0
        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);
        }
Exemple #2
0
 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();
 }