Advertisement
eugeniabahit

Python - Script para crear estructura de archivos y directorios para WebApp procedural

Mar 14th, 2014
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.96 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from os import access, mkdir, W_OK
  4. from os.path import expanduser
  5. import readline
  6.  
  7.  
  8. print """
  9.    ====================================================================
  10.     Script para crear la estructura de archivos y directorios para una
  11.     aplicación Web procedural, en Python sobre Apache con WSGI
  12.    
  13.        Autor: Eugenia Bahit
  14.     Licencia: GPL v3.0 (Software Libre)
  15.          Web: http://www.cursosdeprogramacionadistancia.com
  16.    ====================================================================
  17.  
  18. """
  19.  
  20.  
  21. # Función raw_input mejorada (acepta valor por defecto)
  22. def rawinput(texto, default_value):
  23.     def set_default_value():
  24.         readline.insert_text(default_value)
  25.         readline.redisplay()
  26.  
  27.     readline.set_pre_input_hook(set_default_value)
  28.     return raw_input(texto.rjust(15, ' '))
  29.  
  30.  
  31. # Solicitar el path absoluto en el cual guardar el proyecto
  32. def pedir_directorio():
  33.     # Home del usuario
  34.     user_home = expanduser("~")
  35.  
  36.     # Ruta para almacenar el proyecto
  37.     path = rawinput("RUTA: ", "%s/proyectos" % user_home)
  38.  
  39.     # Verifica si path es accesible con permisos de escritura
  40.     acceso_permitido = access(path, W_OK)
  41.    
  42.     if not acceso_permitido is True:
  43.         print """
  44.            %s
  45.            Este directorio no existe o no tiene permisos de escritura.
  46.            Por favor, intenta con otro directorio.
  47.        """ % path
  48.         return pedir_directorio()
  49.     else:
  50.         return path
  51.  
  52.  
  53. # Ruta para almacenar el proyecto
  54. path = pedir_directorio()
  55.  
  56. # Nombre del proyecto (se usará como nombre del directorio)
  57. proyecto = rawinput("PROYECTO: ", "")
  58.  
  59. # Path absoluto del proyecto (incluyendo carpeta del proyecto)
  60. ruta_proyecto = "%s/%s" % (path, proyecto)
  61.  
  62. # Lista de directorios a crear
  63. dirs = [
  64.     ruta_proyecto,
  65.     '%s/logs' % ruta_proyecto,
  66.     '%s/null' % ruta_proyecto,
  67.     '%s/application' % ruta_proyecto,
  68.     '%s/application/core' % ruta_proyecto,
  69.     '%s/application/common' % ruta_proyecto,
  70.     '%s/application/static' % ruta_proyecto
  71. ]
  72.  
  73. # Lista de archivos a crear
  74. files = [
  75.     '%s/application/__init__.py' % ruta_proyecto,
  76.     '%s/application/controller.py' % ruta_proyecto,
  77.     '%s/application/settings.py' % ruta_proyecto,
  78.     '%s/application/core/__init__.py' % ruta_proyecto,
  79.     '%s/application/core/dblayer.py' % ruta_proyecto,
  80.     '%s/application/core/views.py' % ruta_proyecto,
  81.     '%s/application/common/__init__.py' % ruta_proyecto,
  82. ]
  83.  
  84. # Intenta crear la estructura de archivos y directorios
  85. try:
  86.     # Crear los directorios iterativamente
  87.     for directorio in dirs:
  88.         mkdir(directorio)
  89.  
  90.     # Crear los archivos iterativamente
  91.     for archivo in files:
  92.         open(archivo, 'a').close()
  93.  
  94.     print """
  95.        Estructura de archivos y directorios creada con éxito.
  96.    """
  97.  
  98. # Si el intento anterior falla, imprime mensaje con el error
  99. except Exception as error:
  100.     print """
  101.        Se produjo el siguiente error:
  102.        %s
  103.        
  104.        Es necesario ejecutar este archivo nuevamente.
  105.    """ % error
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement