Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var SetupServer = &cobra.Command{ Use: "setup [ipv4 address]", Example: "setup 192.168.178.14", Short: "Prepare a server for deployment", Long: `setup will install all required software on a server. You are then able to deploy projects onto it.`, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { PrepareContext(args[0], system.ContextActionServerSetup, nil) taskRunner := routines.TaskRunner{} _ = taskRunner.RunTask(routines.Task{ Name: fmt.Sprintf("Setting up server at IP \"%s\"", args[0]), Run: func(r *routines.Task) error { var err error for _, module := range system.Context.GetModulesInOrder() { moduleSettings := system.GetModuleSettings(module.GetConfig().Name) module.Init(moduleSettings) } prepareSpinner := r.TaskRunner.GetNewSubtaskSpinner("Preparing setup") if err := basicSetup(); err != nil { if prepareSpinner != nil { prepareSpinner.UpdateMessage("Unable to prepare setup. (" + err.Error() + ")") prepareSpinner.Error() } else { fmt.Println("Unable to prepare setup. (" + err.Error() + ")") } os.Exit(1) } if prepareSpinner != nil { prepareSpinner.Complete() } sshSpinner := r.TaskRunner.GetNewSubtaskSpinner("Setting up SSH keys") if err := setupSshKeys(); err != nil { if sshSpinner != nil { sshSpinner.UpdateMessage("Unable to setup SSH keys. (\" + err.Error() + \")") sshSpinner.Error() } else { fmt.Println("Unable to setup SSH keys. (" + err.Error() + ")") } os.Exit(1) } if sshSpinner != nil { sshSpinner.Complete() } userSpinner := r.TaskRunner.GetNewSubtaskSpinner("Setting up users") if err := userSetup(); err != nil { if userSpinner != nil { userSpinner.UpdateMessage("Unable to create StackHead users. (" + err.Error() + ")") userSpinner.Error() } else { fmt.Println("Unable to create StackHead users. (" + err.Error() + ")") } os.Exit(1) } if userSpinner != nil { userSpinner.Complete() } folderSpinner := r.TaskRunner.GetNewSubtaskSpinner("Setting up folders") if err := folderSetup(); err != nil { if folderSpinner != nil { folderSpinner.UpdateMessage("Unable to create folders. (" + err.Error() + ")") folderSpinner.Error() } else { fmt.Println("Unable to create folders. (" + err.Error() + ")") } os.Exit(1) } if folderSpinner != nil { folderSpinner.Complete() } versionSpinner := r.TaskRunner.GetNewSubtaskSpinner("Writing StackHead version") if err := system.WriteVersion(); err != nil { if versionSpinner != nil { versionSpinner.UpdateMessage("Unable to write version. (" + err.Error() + ")") versionSpinner.Error() } else { fmt.Println("Unable to write version. (" + err.Error() + ")") } os.Exit(1) } if versionSpinner != nil { versionSpinner.Complete() } return err }, ErrorAsErrorMessage: true, }) _ = taskRunner.RunTask(routines.Task{ Name: fmt.Sprintf("Setting up StackHead Plugins at \"%s\"", args[0]), Run: func(r *routines.Task) error { var err error modules := system.Context.GetModulesInOrder() event.MustFire("setup.modules.pre-install", event.M{"modules": modules}) for _, module := range modules { if module.GetConfig().Type == "plugin" || module.GetConfig().Type == "dns" { continue } moduleSpinner := r.TaskRunner.GetNewSubtaskSpinner("Setup " + module.GetConfig().Name) event.MustFire( "setup.modules.pre-install-module."+module.GetConfig().Type+"."+module.GetConfig().Name, event.M{"module": module}, ) moduleSettings := system.GetModuleSettings(module.GetConfig().Name) if err := module.Install(moduleSettings); err != nil { if moduleSpinner != nil { moduleSpinner.Error() } return err } if moduleSpinner != nil { moduleSpinner.Complete() } event.MustFire( "setup.modules.post-install-module."+module.GetConfig().Type+"."+module.GetConfig().Name, event.M{"module": module}, ) } event.MustFire("setup.modules.post-install", event.M{"modules": modules}) return err }, ErrorAsErrorMessage: true, }) }, }
SetupServer is a command object for Cobra that provides the setup command
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.