mirror of
https://github.com/semaphoreui/semaphore.git
synced 2024-11-23 12:30:41 +01:00
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
package db_lib
|
|
|
|
import (
|
|
"github.com/ansible-semaphore/semaphore/db"
|
|
"github.com/ansible-semaphore/semaphore/pkg/task_logger"
|
|
)
|
|
|
|
func CreateApp(template db.Template, repository db.Repository, logger task_logger.Logger) LocalApp {
|
|
switch template.App {
|
|
case db.TemplateAnsible:
|
|
return &AnsibleApp{
|
|
Template: template,
|
|
Repository: repository,
|
|
Logger: logger,
|
|
Playbook: &AnsiblePlaybook{
|
|
TemplateID: template.ID,
|
|
Repository: repository,
|
|
Logger: logger,
|
|
},
|
|
}
|
|
case db.TemplateTerraform:
|
|
return &TerraformApp{
|
|
Template: template,
|
|
Repository: repository,
|
|
Logger: logger,
|
|
Name: TerraformAppTerraform,
|
|
}
|
|
case db.TemplateTofu:
|
|
return &TerraformApp{
|
|
Template: template,
|
|
Repository: repository,
|
|
Logger: logger,
|
|
Name: TerraformAppTofu,
|
|
}
|
|
case db.TemplateBash, db.TemplatePowerShell, db.TemplatePython:
|
|
return &ShellApp{
|
|
Template: template,
|
|
Repository: repository,
|
|
Logger: logger,
|
|
App: template.App,
|
|
}
|
|
default:
|
|
panic("unknown app")
|
|
}
|
|
}
|