Files
pack/core/providers/python/django.go
T
zeekay 7844a60aff refactor(pack): modernize to github.com/hanzoai/pack and remove upstream branding
- Migrate module path to github.com/hanzoai/pack across all Go packages
- Remove legacy upstream docs and competitor brand references
- Modernize LLM.md and mise.toml for pristine Hanzo Pack builder
2026-09-04 00:40:42 -07:00

53 lines
1.1 KiB
Go

package python
import (
"fmt"
"regexp"
"github.com/hanzoai/pack/core/generate"
)
func (p *PythonProvider) getDjangoAppName(ctx *generate.GenerateContext) string {
if appName, _ := ctx.Env.GetConfigVariable("DJANGO_APP_NAME"); appName != "" {
return appName
}
paths, err := ctx.App.FindFiles("**/*.py")
if err != nil {
return ""
}
re := regexp.MustCompile(`WSGI_APPLICATION = ["'](.*).application["']`)
for _, path := range paths {
contents, err := ctx.App.ReadFile(path)
if err != nil {
continue
}
matches := re.FindStringSubmatch(contents)
if len(matches) > 1 {
return matches[1]
}
}
return ""
}
func (p *PythonProvider) getDjangoStartCommand(ctx *generate.GenerateContext) string {
appName := p.getDjangoAppName(ctx)
if appName == "" {
return ""
}
ctx.Logger.LogInfo("Using Django app: %s", appName)
return fmt.Sprintf("python manage.py migrate && gunicorn --bind 0.0.0.0:${PORT:-8000} %s:application", appName)
}
func (p *PythonProvider) isDjango(ctx *generate.GenerateContext) bool {
hasManage := ctx.App.HasFile("manage.py")
importsDjango := p.usesDep(ctx, "django")
return hasManage && importsDjango
}