X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=branch%2Fpatch%2Fexec%2Fbuild;fp=branch%2Fpatch%2Fexec%2Fbuild;h=b875e60097c3a7174c11aa3cc0abc4fdbd236e93;hb=75ac4a666a0faa4a2d09aeed4db94746c097b1ca;hp=0000000000000000000000000000000000000000;hpb=7c74d4e371b7ecda2035aa106918b0427818cacf;p=cran2deb.git diff --git a/branch/patch/exec/build b/branch/patch/exec/build new file mode 100755 index 0000000..b875e60 --- /dev/null +++ b/branch/patch/exec/build @@ -0,0 +1,43 @@ +#!/usr/bin/env r +## DOC: cran2deb build [-D extra_dep1,extra_dep2,...] package1 package2 ... +## DOC: builds a particular package. +## DOC: +suppressMessages(library(cran2deb)) + +if (exists('argv')) { # check for littler + argc <- length(argv) + extra_deps = list() + extra_deps$deb = c() + extra_deps$r = c() + opts = c('-D','-R') + # first argument is the root --- this is dealt with elsewhere. + for (i in 2:argc) { + if (!(argv[i] %in% opts)) { + if (argc >= i) { + argv <- argv[i:argc] + } else { + argv <- list() + } + argc = argc - i + 1 + break + } + if (i == argc) { + err('missing argument') + } + if (argv[i] == '-D') { + extra_deps$deb = c(extra_deps$deb,strsplit(chomp(argv[i+1]),',')[[1]]) + } + if (argv[i] == '-R') { + extra_deps$r = c(extra_deps$r,strsplit(chomp(argv[i+1]),',')[[1]]) + extra_deps$deb = c(extra_deps$deb,lapply(extra_deps$r,pkgname_as_debian)) + } + } + if (argc == 0) { + err('usage: cran2deb [-D extra_dep1,extra_dep2,...] package package ...') + } + build_order <- r_dependency_closure(c(extra_deps$r,argv)) + notice('build order',paste(build_order,collapse=', ')) + for (pkg in build_order) { + build(pkg,extra_deps,force=pkg %in% argv) + } +}