You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
website/cmd/dev-server/main.go

82 lines
1.5 KiB
Go

2 years ago
package main
import (
"bufio"
"io"
"log"
"os/exec"
"git.phc.dm.unipi.it/phc/website/libs/db"
"git.phc.dm.unipi.it/phc/website/libs/sl"
"git.phc.dm.unipi.it/phc/website/server"
"git.phc.dm.unipi.it/phc/website/server/config"
"git.phc.dm.unipi.it/phc/website/server/database"
"git.phc.dm.unipi.it/phc/website/server/listautenti"
2 years ago
"git.phc.dm.unipi.it/phc/website/server/model"
)
func init() {
log.SetFlags(0)
}
func main() {
l := sl.New()
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
//
// Setup the application
//
2 years ago
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
// Config
sl.ProvideFunc(l, config.Slot, config.Configure)
// Database
sl.Provide[database.Database](l, database.Slot, &database.Memory{
2 years ago
Users: []model.User{
{
Id: "e39ad8d5-a087-4cb2-8fd7-5a6ca3f6a534",
Username: "claire-doe",
FullName: db.NewOption("Claire Doe"),
Email: db.NewOption("claire.doe@example.org"),
},
{
Id: "9b7109cd-95a1-41e9-a9f6-001a32c20ca1",
Username: "john-smith",
FullName: db.NewOption("John Smith"),
Email: db.NewOption("john.smith@example.org"),
},
},
})
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
// Server
sl.ProvideFunc(l, server.Slot, server.Configure)
sl.ProvideHook(l, server.ApiRoutesHook,
listautenti.MountApiRoutesHook,
)
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
//
// Start the application
//
2 years ago
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
sl.MustInvoke(l, server.Slot)
2 years ago
r, w := io.Pipe()
chore: refactored sl and added an hooks system modified: cmd/dev-server/main.go, cmd/server/main.go Aggiornati per utilizzare il nuovo sistema degli hooks, ora nei "main" vanno solo chiamate "ProvideValue", "Provide" e "ProvideHook" ed una finale di "Invoke" o "Use". Mentre nei vari servizi vanno solo chiamate "Use" o "UseHook" modified: libs/sl/sl.go Rinominati "InjectValue" e "InjectLazy" a "Provide" e "ProvideFunc", altro refactor di varie cose ed aggiunto il concetto degli hook per poter iniettare anche più di un servizio dentro un altro in un preciso ordine. modified: server/config/config.go Lieve refactor ed aggiunta la variabile "NPM_COMMAND" configurabile per la fase di development. modified: server/listautenti/listautenti.go Ora questo è un vero e proprio servizio "state-less", fornisce solo una funzione che monta tutte le route necessarie a questo servizio. Più avanti dipenderà da LDAP quindi forse sarà leggermente più complicato. modified: server/listautenti/listautenti_test.go Aggiornato questo test, ora usa il nuovo sistema e funge di nuovo. deleted: server/routes/routes.go Il sistema degli hook è stato introdotto anche per semplificare questa cosa che ora infatti non serve più. modified: server/server.go Ora il server non chiama più "InjectValue" con i sotto-router ma espone solo un hook che passa i sotto router come parametri, in questo modo è più facile aggiungere e togliere servizi direttamente alla radice quando viene configurata tutta l'applicazione.
1 year ago
cfg := sl.MustUse(l, config.Slot)
cmd := exec.Command(cfg.NpmCommand, "run", "dev")
2 years ago
cmd.Stdout = w
go func() {
scanner := bufio.NewScanner(r)
for scanner.Scan() {
log.Printf(`[cmd/devserver] [vitejs] %s`, scanner.Text())
}
}()
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
}