summaryrefslogtreecommitdiffstats
path: root/modules/git
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2020-05-17 00:31:38 +0100
committerGitHub <noreply@github.com>2020-05-16 19:31:38 -0400
commit9a2e47b23a6d460acfce9b1b77e6f9fb06ca1b75 (patch)
treeb1852472e1ecf6bdb1822b41655bdaf8afd87c1b /modules/git
parentc18144086f9d4a06adbd4a7c08cfa6dab91224ec (diff)
downloadgitea-9a2e47b23a6d460acfce9b1b77e6f9fb06ca1b75.tar.gz
gitea-9a2e47b23a6d460acfce9b1b77e6f9fb06ca1b75.zip
Refactor Cron and merge dashboard tasks (#10745)
* Refactor Cron and merge dashboard tasks * Merge Cron and Dashboard tasks * Make every cron task report a system notice on completion * Refactor the creation of these tasks * Ensure that execution counts of tasks is correct * Allow cron tasks to be started from the cron page * golangci-lint fixes * Enforce that only one task with the same name can be registered Signed-off-by: Andrew Thornton <art27@cantab.net> * fix name check Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @guillep2k * as per @lafriks Signed-off-by: Andrew Thornton <art27@cantab.net> * Add git.CommandContext variants Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'modules/git')
-rw-r--r--modules/git/command.go14
-rw-r--r--modules/git/git.go4
2 files changed, 14 insertions, 4 deletions
diff --git a/modules/git/command.go b/modules/git/command.go
index 6c931790c0..14fab4ef3c 100644
--- a/modules/git/command.go
+++ b/modules/git/command.go
@@ -45,22 +45,32 @@ func (c *Command) String() string {
// NewCommand creates and returns a new Git Command based on given command and arguments.
func NewCommand(args ...string) *Command {
+ return NewCommandContext(DefaultContext, args...)
+}
+
+// NewCommandContext creates and returns a new Git Command based on given command and arguments.
+func NewCommandContext(ctx context.Context, args ...string) *Command {
// Make an explicit copy of GlobalCommandArgs, otherwise append might overwrite it
cargs := make([]string, len(GlobalCommandArgs))
copy(cargs, GlobalCommandArgs)
return &Command{
name: GitExecutable,
args: append(cargs, args...),
- parentContext: DefaultContext,
+ parentContext: ctx,
}
}
// NewCommandNoGlobals creates and returns a new Git Command based on given command and arguments only with the specify args and don't care global command args
func NewCommandNoGlobals(args ...string) *Command {
+ return NewCommandContextNoGlobals(DefaultContext, args...)
+}
+
+// NewCommandContextNoGlobals creates and returns a new Git Command based on given command and arguments only with the specify args and don't care global command args
+func NewCommandContextNoGlobals(ctx context.Context, args ...string) *Command {
return &Command{
name: GitExecutable,
args: args,
- parentContext: DefaultContext,
+ parentContext: ctx,
}
}
diff --git a/modules/git/git.go b/modules/git/git.go
index d5caaa0912..7f718511f7 100644
--- a/modules/git/git.go
+++ b/modules/git/git.go
@@ -150,11 +150,11 @@ func Init(ctx context.Context) error {
}
// Fsck verifies the connectivity and validity of the objects in the database
-func Fsck(repoPath string, timeout time.Duration, args ...string) error {
+func Fsck(ctx context.Context, repoPath string, timeout time.Duration, args ...string) error {
// Make sure timeout makes sense.
if timeout <= 0 {
timeout = -1
}
- _, err := NewCommand("fsck").AddArguments(args...).RunInDirTimeout(timeout, repoPath)
+ _, err := NewCommandContext(ctx, "fsck").AddArguments(args...).RunInDirTimeout(timeout, repoPath)
return err
}