Current section
Files
Jump to
Current section
Files
src/examples/git_clone.gleam
// sdk/src/examples/git_clone.gleam
//
// Clone a Git repository over HTTPS and inspect its contents.
//
// Run with:
// dgl generate
// gleam run -m examples/git_clone
import dagger
import dagger/dsl/dag
import dagger/dsl/directory as dir
import dagger/dsl/git
import gleam/io
import gleam/string
pub fn main() {
use client <- dagger.connect()
// Clone the Gleam repository at a specific tag — no git binary needed,
// Dagger handles the fetch natively.
let repo =
dag.git("https://github.com/gleam-lang/gleam.git", with: dag.none)
|> git.tag("v1.14.0")
|> git.tree(with: git.none)
use result <- dir.entries(repo, dir.none, client)
case result {
Ok(entries) -> {
io.println("Repository root contents:")
entries
|> string.join("\n")
|> io.println
}
Error(e) -> io.println_error("Pipeline failed: " <> string.inspect(e))
}
}