build-cran-binaries/local/missing-cran-packages.R

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)