2018-01-13 01:16:49 +03:00
// Copyright 2018 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
// Package cmd provides subcommands to the gitea binary - such as "web" or
// "admin".
package cmd
import (
"errors"
"fmt"
2020-10-24 23:38:14 +03:00
"strings"
2018-01-13 01:16:49 +03:00
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/setting"
2019-01-21 14:45:32 +03:00
"code.gitea.io/gitea/modules/util"
2018-01-13 01:16:49 +03:00
"github.com/urfave/cli"
)
// argsSet checks that all the required arguments are set. args is a list of
// arguments that must be set in the passed Context.
func argsSet ( c * cli . Context , args ... string ) error {
for _ , a := range args {
if ! c . IsSet ( a ) {
return errors . New ( a + " is not set" )
}
2018-12-27 15:38:38 +03:00
2019-01-21 14:45:32 +03:00
if util . IsEmptyString ( a ) {
2018-12-27 15:38:38 +03:00
return errors . New ( a + " is required" )
}
2018-01-13 01:16:49 +03:00
}
return nil
}
2020-10-24 23:38:14 +03:00
// confirm waits for user input which confirms an action
func confirm ( ) ( bool , error ) {
var response string
_ , err := fmt . Scanln ( & response )
if err != nil {
return false , err
}
switch strings . ToLower ( response ) {
case "y" , "yes" :
return true , nil
case "n" , "no" :
return false , nil
default :
return false , errors . New ( response + " isn't a correct confirmation string" )
}
}
2018-01-13 01:16:49 +03:00
func initDB ( ) error {
2018-11-01 16:41:07 +03:00
return initDBDisableConsole ( false )
}
func initDBDisableConsole ( disableConsole bool ) error {
2018-01-13 01:16:49 +03:00
setting . NewContext ( )
2019-08-24 12:24:45 +03:00
setting . InitDBConfig ( )
2018-01-13 01:16:49 +03:00
2018-11-01 16:41:07 +03:00
setting . NewXORMLogService ( disableConsole )
2018-01-13 01:16:49 +03:00
if err := models . SetEngine ( ) ; err != nil {
return fmt . Errorf ( "models.SetEngine: %v" , err )
}
return nil
}