internal/platform/git/git_legacy.go (36 lines of code) (raw):

/* * Copyright 2021-2024 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package git import ( "fmt" "os/exec" "strings" log "github.com/sirupsen/logrus" ) func BranchLegacy(cwd string) string { return gitOutput(cwd, []string{"rev-parse", "--abbrev-ref", "HEAD"})[0] } func CurrentRevisionLegacy(cwd string) string { return gitOutput(cwd, []string{"rev-parse", "HEAD"})[0] } func RemoteUrlLegacy(cwd string) string { return gitOutput(cwd, []string{"remote", "get-url", "origin"})[0] } // Log returns the git log of the given repository in the given format. func Log(cwd string, format string, since int) []string { args := []string{"--no-pager", "log", "--all"} if format != "" { args = append(args, "--pretty=format:"+format) } if since > 0 { args = append(args, fmt.Sprintf("--since=%d.days", since)) } return gitOutput(cwd, args) } // gitOutput runs the git command in the given directory and returns the output. func gitOutput(cwd string, args []string) []string { cmd := exec.Command("git", args...) cmd.Dir = cwd out, err := cmd.Output() if err != nil { log.Warn(err.Error()) return []string{""} } return strings.Split(strings.TrimSpace(string(out)), "\n") }