Пример #1
0
        public static bool CreateSetup(string originFolder, string repositoryHost, out string message)
        {
            originFolder = originFolder ?? "";
            if (!Directory.Exists(originFolder))
            {
                message = Strings.Get(StringName.DirectoryNotFound, "DIR", originFolder);
                return(false);
            }

            repositoryHost = repositoryHost ?? "";

            var ri = new RepositoryInfo(repositoryHost);

            if (ri.RepositoryType == Hosts.HostType.None)
            {
                message = Strings.Get(StringName.OptionErrorRepositoryType, "REPO", repositoryHost);
                return(false);
            }

            string executableFile = GetExecutableFile(originFolder);

            if (string.IsNullOrEmpty(executableFile))
            {
                message = Strings.Get(StringName.ExecutableNotInformed);
                return(false);
            }

            Program p = new Program(executableFile);

            p.RepositoryHost = repositoryHost;

            // Identificar restante dos arquivos

            foreach (var f in Directory.GetFiles(originFolder, "*.*", SearchOption.AllDirectories))
            {
                if (f.Equals(executableFile, StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }
                p.Files.Add(new FileEntry(f, originFolder));
            }


            if (EditSetup.Editar(p))
            {
                var repository = ri.CreateRepository();
                repository.PushProgram(p, originFolder);
                message = "Programa enviado ao repositório";
                return(true);
            }
            else
            {
                message = "Edição cancelada pelo usuário";
                return(false);
            }
        }