Convert to Go
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
func cloneRepository(repo Repository, workDir string) error {
|
||||
cmd := exec.Command("git", "clone", repo.CloneURL, filepath.Join(workDir, repo.Name))
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to clone %s: %w", repo.Name, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
token := os.Getenv("TOKEN")
|
||||
if token == "" {
|
||||
log.Fatalf("TOKEN environment variable not set")
|
||||
}
|
||||
|
||||
client := GiteaClient{
|
||||
BaseURL: "https://gitea.seeseepuff.be",
|
||||
Token: token,
|
||||
}
|
||||
|
||||
org := "archlinux"
|
||||
workDir := "./work/"
|
||||
|
||||
err := os.RemoveAll(workDir)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to remove %s: %v", workDir, err)
|
||||
}
|
||||
err = os.MkdirAll(workDir, os.ModePerm)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create %s: %v", workDir, err)
|
||||
}
|
||||
|
||||
repos, err := client.getRepositories(org)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to get repositories: %v", err)
|
||||
}
|
||||
|
||||
success := true
|
||||
for _, repo := range repos {
|
||||
log.Printf("Checking %s", repo.FullName)
|
||||
hasFile, err := client.hasPKGBUILD(repo)
|
||||
|
||||
if err != nil {
|
||||
log.Printf("Error checking for PKGBUILD: %v", err)
|
||||
success = false
|
||||
continue
|
||||
}
|
||||
|
||||
if !hasFile {
|
||||
log.Println("PKGBUILD not found, skipping")
|
||||
continue
|
||||
}
|
||||
|
||||
if err := cloneRepository(repo, workDir); err != nil {
|
||||
success = false
|
||||
log.Printf("Error cloning repository: %v", err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if !success {
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user