devxy/build-cran-binaries
Watch
1
0
Fork
You've already forked build-cran-binaries
0
build-cran-binaries/local/missing-cran-packages.R
pat-s f9dd20a757 chore: remove plans and specs design docs
Drop the internal plans/ and specs/ design documents, the README link to the patching spec and their markdownlint ignores.
2026-11-14 13:07:40 +01:00

62 lines
2 KiB
R

### Scope: Lists packages which are missing any tarball in S3 compared to the CRAN pkg listing
library(bincraft)
library(dplyr)
s3fs::s3_file_system(
aws_access_key_id = Sys.getenv("HETZNER_S3_ACCESS_KEY_K3S"),
aws_secret_access_key = Sys.getenv("HETZNER_S3_SECRET_KEY_K3S"),
endpoint = "https://hel1.your-objectstorage.com",
region_name = "hel1",
refresh = T
)
s3fs::s3_dir_ls("s3://devxy-r-package-binaries")
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/amd64/jammy/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/amd64/noble/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/amd64/rhel8/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/amd64/rhel9/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/amd64/alpine320/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/arm64/jammy/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/arm64/noble/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/arm64/rhel8/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/arm64/rhel9/latest/src/contrib"
)) # done
files <- s3fs::s3_dir_ls(sprintf(
"devxy-r-package-binaries-hel1/arm64/alpine320/latest/src/contrib"
))
files_b <- basename(files)
files_b_split <- sapply(strsplit(basename(files_b), "_"), function(x) x[1])
cran_pkgs <- tools::CRAN_package_db() |>
filter(`Date/Publication` <= "2025-01-25") |>
pull(Package)
pkgs <- setdiff(cran_pkgs, files_b_split)
formatted_pkgs <- gsub(
'"',
"'",
capture.output(dput(as.character(na.omit(pkgs[1:900]))))
)
formatted_pkgs_one_line <- paste(formatted_pkgs, collapse = " ")
cat(formatted_pkgs_one_line, "\n", sep = "")
clipr::write_clip(formatted_pkgs_one_line)