Internals
ArtifactUtils.communicate — Methodcommunicate(cmd, input) -> output::Vector{UInt8}Run cmd, write input to its stdin, and return the bytes output read from its stdout. stderr is redirected to Base.stdout.
ArtifactUtils.copy_mode — Methodcopy_mode(src, dst)Copy mode of src to dst recursively in a way compatible to how Pkg (Git) compute the tree hash.
See Pkg.GitTools.gitmode comment for how the file mode is handled specially in Windows: https://github.com/JuliaLang/Pkg.jl/blob/247a4062bfde19d93bdcbaccc9737df496fd0c2b/src/GitTools.jl#L189-L192
copy_mode is based on: https://github.com/JuliaIO/Tar.jl/blob/6a946029685639b69ce5a7cc4c4a6c0e6c6b2697/src/extract.jl#L145-L153
ArtifactUtils.gist_from_file — Methodgist_from_file(filepath::AbstractString; private::Bool = true) -> fileurl::StringCreate a new gist from file at filepath. Return the "raw" HTTPS URL of the file.
ArtifactUtils.git_empty_history — Methodgit_empty_history(git_dir)Empty the history of the current branch. Create an empty commit to start fresh.
ArtifactUtils.open_atomic_write — Methodopen_atomic_write(f, path) -> yEvaluate y = f(io::IO), atomically replace the file with a new file with the content of io (in well-behaving file systems) and then return y; i.e., it's an atomic version of open(f, path; write = true).
ArtifactUtils.threaded_progress_foreach — Methodthreaded_progress_foreach(
f,
xs;
nworkers::Integer = Sys.CPU_THREADS,
progresstitle::AbstractString = "",
)Like foreach(f, xs) but threaded and with progress bar.
ArtifactUtils.with_new_gist — Methodwith_new_gist(f; private::Bool = true) -> repo_http::AbstractStringCreate a new gist, check it out as a local git repository at a temporary directory git_dir, call f(git_dir), and then push it to remote. Return the canonical gist HTTPS URL.