示例#1
0
 public string getTemplateSolicitud(Entorno e)
 {
     string ruta = e.getTemplateSolicitud();
     if (ruta != null)
         return ruta;
     else
     {
         string ruta2 = Path.Combine(Path.Combine(rutaPerfil(), "templates"),"solicitudes.html");
         if (File.Exists(ruta2))
             return ruta2;
         else
             return Path.Combine(Path.Combine(rutaPerfiles(), "templates"), "solicitudes.html");
     }
 }
示例#2
0
 public string getTemplateInstalador(Entorno e)
 {
     string ruta = e.getTemplateInstalador();
     if (ruta != null)
         return ruta;
     else
     {
         string ruta2 = Path.Combine(Path.Combine(rutaPerfil(), "templates"), "instalador.sh");
         if (File.Exists(ruta2))
             return ruta2;
         else
             return Path.Combine(Path.Combine(rutaPerfiles(), "templates"), "instalador.sh");
     }
 }
示例#3
0
        private bool generarManualSolicitud(Entorno e)
        {
            string pathImplementacion = PerfilUtilizado.rutaImplementacion();
            string pathVersionador = PerfilUtilizado.proyectoSegunVersionador() + "\\" + PerfilUtilizado.rutaVersionadorImplementacion();
            string miPath = System.IO.Path.Combine(carpeta, "Instalador");
            string prefijo = "E"; if (tipoDelProyecto == tipoProyecto.Correctivo) prefijo = "C";

            string nombreTar = "fuentes_" + prefijo + codigo + ".tar";
            string nombreInstalador = "instalador_" + prefijo + codigo + ".sh";
            string nombreInstaladorDesa = "instalador_" + prefijo + codigo + "<ENTORNO>.sh";
            string nombreMigracion = "migracion_" + prefijo + codigo + ".html";

            string archivoTar = System.IO.Path.Combine(miPath, nombreTar);
            string archivoInstalador = System.IO.Path.Combine(miPath, nombreInstalador);
            string archivoMigracion = System.IO.Path.Combine(miPath, nombreMigracion);

            FileInfo f = new FileInfo(archivoTar);
            /* Solicitud */
            try
            {
                string pathTemplateSolicitud = PerfilUtilizado.getTemplateSolicitud(e);

                TextReader leerTemplate = new StreamReader(pathTemplateSolicitud);
                string template = leerTemplate.ReadToEnd();
                leerTemplate.Close();

                string pathTemplateInstalador = PerfilUtilizado.getTemplateInstalador(e);
                /* Directorios */
                StringBuilder directoriosLista = new StringBuilder();
                for (int i = 0; i < vectorDirectorios.Count; i++)
                {
                    string dirRuta = vectorDirectorios[i].ruta;
                    string dirOwner = vectorDirectorios[i].owner;
                    string dirGrupo = vectorDirectorios[i].grupo;
                    string dirPermisos = vectorDirectorios[i].permisos;
                    if (!e.getProductivo())
                    {
                        dirOwner = e.getUsuarioMapeado(dirOwner);
                        dirGrupo = e.getGrupoMapeado(dirGrupo);
                        dirRuta = e.getDirectorioMapeado(dirRuta);
                    }
                    directoriosLista.Append(dirRuta + " (" + dirOwner + ":" + dirGrupo + "/" + dirPermisos + ")" + '\n');

                }
                /* Archivos */
                StringBuilder archivosLista = new StringBuilder();
                for (int i = 0; i < vectorArchivos.Count; i++)
                {
                    string archRuta = vectorArchivos[i].ruta;
                    string archOwner = vectorArchivos[i].owner;
                    string archGrupo = vectorArchivos[i].grupo;
                    string archPermisos = vectorArchivos[i].permisos;
                    if (!e.getProductivo())
                    {
                        archOwner = e.getUsuarioMapeado(archOwner);
                        archGrupo = e.getGrupoMapeado(archGrupo);
                        archRuta = e.getDirectorioMapeado(archRuta);
                    }
                    archivosLista.Append(archRuta + " (" + archOwner + ":" + archGrupo + "/" + archPermisos + ")" + '\n');
                }
                /* Ejecutables */
                StringBuilder ejecutablesLista = new StringBuilder();
                for (int i = 0; i < vectorEjecutables.Count; i++)
                {
                    if (vectorEjecutables[i].ruta.Substring(vectorEjecutables[i].ruta.Length - 3, 3) == ".sh")
                        ejecutablesLista.Append(pathImplementacion + prefijo + codigo + "/" + vectorEjecutables[i].ruta + '\n');
                }

                if (tipoDelProyecto == tipoProyecto.Evolutivo)
                    template = template.Replace("*-*-*TIPO*-*-*", "evolutivo");
                else if (tipoDelProyecto == tipoProyecto.Correctivo)
                    template = template.Replace("*-*-*TIPO*-*-*", "correctivo");

                template = template.Replace("*-*-*CODIGO*-*-*", prefijo + codigo);
                template = template.Replace("*-*-*TAR*-*-*", nombreTar);
                template = template.Replace("*-*-*TARSIZE*-*-*", f.Length.ToString());
                template = template.Replace("*-*-*INSTALADOR*-*-*", nombreInstalador);
                template = template.Replace("*-*-*INSTALADORDESA*-*-*", nombreInstaladorDesa);
                template = template.Replace("*-*-*DESCRIPCION*-*-*", descripcion);
                template = template.Replace("*-*-*RUTAIMPLEMENTACION*-*-*", pathImplementacion);
                template = template.Replace("*-*-*RUTAVERSIONADOR*-*-*", pathVersionador);
                template = template.Replace("*-*-*LISTAARCHIVOS*-*-*", archivosLista.ToString());
                template = template.Replace("*-*-*LISTADIRECTORIOS*-*-*", directoriosLista.ToString());
                template = template.Replace("*-*-*LISTAEJECUTABLES*-*-*", ejecutablesLista.ToString());

                cambiarPermisos(archivoMigracion);

                StreamWriter escribirScript = new StreamWriter(archivoMigracion);
                escribirScript.Write(template);
                escribirScript.Close();

            }
            catch (Exception ex)
            { Logeador.Instance.log("Error intentando crear el manual de solicitudes: " + ex.Message); return false; }
            return true;
        }