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"); } }
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"); } }
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; }