mirror of
https://github.com/dokku/dokku.git
synced 2025-12-18 21:09:25 +01:00
44 lines
957 B
Go
44 lines
957 B
Go
package repo
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/dokku/dokku/plugins/common"
|
|
)
|
|
|
|
// CommandGc runs 'git gc --aggressive' against the application's repo
|
|
func CommandGc(appName string) error {
|
|
if err := common.VerifyAppName(appName); err != nil {
|
|
return err
|
|
}
|
|
|
|
appRoot := common.AppRoot(appName)
|
|
cmdEnv := map[string]string{
|
|
"GIT_DIR": appRoot,
|
|
}
|
|
|
|
result, err := common.CallExecCommand(common.ExecCommandInput{
|
|
Command: "git",
|
|
Args: []string{"gc", "--aggressive"},
|
|
Env: cmdEnv,
|
|
StreamStdio: true,
|
|
})
|
|
if err != nil {
|
|
return fmt.Errorf("Unable to run git gc: %w", err)
|
|
}
|
|
if result.ExitCode != 0 {
|
|
return fmt.Errorf("Unable to run git gc: %s", result.StderrContents())
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// CommandPurgeCache deletes the contents of the build cache stored in the repository
|
|
func CommandPurgeCache(appName string) error {
|
|
if err := common.VerifyAppName(appName); err != nil {
|
|
return err
|
|
}
|
|
|
|
return PurgeCache(appName)
|
|
}
|