1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Copyright 2017 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 util
-
- import (
- "net/url"
- "path"
-
- "code.gitea.io/gitea/modules/log"
- )
-
- // OptionalBool a boolean that can be "null"
- type OptionalBool byte
-
- const (
- // OptionalBoolNone a "null" boolean value
- OptionalBoolNone = iota
- // OptionalBoolTrue a "true" boolean value
- OptionalBoolTrue
- // OptionalBoolFalse a "false" boolean value
- OptionalBoolFalse
- )
-
- // IsTrue return true if equal to OptionalBoolTrue
- func (o OptionalBool) IsTrue() bool {
- return o == OptionalBoolTrue
- }
-
- // IsFalse return true if equal to OptionalBoolFalse
- func (o OptionalBool) IsFalse() bool {
- return o == OptionalBoolFalse
- }
-
- // IsNone return true if equal to OptionalBoolNone
- func (o OptionalBool) IsNone() bool {
- return o == OptionalBoolNone
- }
-
- // OptionalBoolOf get the corresponding OptionalBool of a bool
- func OptionalBoolOf(b bool) OptionalBool {
- if b {
- return OptionalBoolTrue
- }
- return OptionalBoolFalse
- }
-
- // Max max of two ints
- func Max(a, b int) int {
- if a < b {
- return b
- }
- return a
- }
-
- // URLJoin joins url components, like path.Join, but preserving contents
- func URLJoin(base string, elems ...string) string {
- u, err := url.Parse(base)
- if err != nil {
- log.Error(4, "URLJoin: Invalid base URL %s", base)
- return ""
- }
- joinArgs := make([]string, 0, len(elems)+1)
- joinArgs = append(joinArgs, u.Path)
- joinArgs = append(joinArgs, elems...)
- u.Path = path.Join(joinArgs...)
- return u.String()
- }
-
- // Min min of two ints
- func Min(a, b int) int {
- if a > b {
- return b
- }
- return a
- }
|