Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- from os import access, mkdir, W_OK
- from os.path import expanduser
- import readline
- print """
- ====================================================================
- Script para crear la estructura de archivos y directorios para una
- aplicación Web procedural, en Python sobre Apache con WSGI
- Autor: Eugenia Bahit
- Licencia: GPL v3.0 (Software Libre)
- Web: http://www.cursosdeprogramacionadistancia.com
- ====================================================================
- """
- # Función raw_input mejorada (acepta valor por defecto)
- def rawinput(texto, default_value):
- def set_default_value():
- readline.insert_text(default_value)
- readline.redisplay()
- readline.set_pre_input_hook(set_default_value)
- return raw_input(texto.rjust(15, ' '))
- # Solicitar el path absoluto en el cual guardar el proyecto
- def pedir_directorio():
- # Home del usuario
- user_home = expanduser("~")
- # Ruta para almacenar el proyecto
- path = rawinput("RUTA: ", "%s/proyectos" % user_home)
- # Verifica si path es accesible con permisos de escritura
- acceso_permitido = access(path, W_OK)
- if not acceso_permitido is True:
- print """
- %s
- Este directorio no existe o no tiene permisos de escritura.
- Por favor, intenta con otro directorio.
- """ % path
- return pedir_directorio()
- else:
- return path
- # Ruta para almacenar el proyecto
- path = pedir_directorio()
- # Nombre del proyecto (se usará como nombre del directorio)
- proyecto = rawinput("PROYECTO: ", "")
- # Path absoluto del proyecto (incluyendo carpeta del proyecto)
- ruta_proyecto = "%s/%s" % (path, proyecto)
- # Lista de directorios a crear
- dirs = [
- ruta_proyecto,
- '%s/logs' % ruta_proyecto,
- '%s/null' % ruta_proyecto,
- '%s/application' % ruta_proyecto,
- '%s/application/core' % ruta_proyecto,
- '%s/application/common' % ruta_proyecto,
- '%s/application/static' % ruta_proyecto
- ]
- # Lista de archivos a crear
- files = [
- '%s/application/__init__.py' % ruta_proyecto,
- '%s/application/controller.py' % ruta_proyecto,
- '%s/application/settings.py' % ruta_proyecto,
- '%s/application/core/__init__.py' % ruta_proyecto,
- '%s/application/core/dblayer.py' % ruta_proyecto,
- '%s/application/core/views.py' % ruta_proyecto,
- '%s/application/common/__init__.py' % ruta_proyecto,
- ]
- # Intenta crear la estructura de archivos y directorios
- try:
- # Crear los directorios iterativamente
- for directorio in dirs:
- mkdir(directorio)
- # Crear los archivos iterativamente
- for archivo in files:
- open(archivo, 'a').close()
- print """
- Estructura de archivos y directorios creada con éxito.
- """
- # Si el intento anterior falla, imprime mensaje con el error
- except Exception as error:
- print """
- Se produjo el siguiente error:
- %s
- Es necesario ejecutar este archivo nuevamente.
- """ % error
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement