X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=branch%2Fpatch%2Fexec%2Fdepend;fp=branch%2Fpatch%2Fexec%2Fdepend;h=2552d8f9ce7e6a00c24a73cc100b0a146290bb41;hb=75ac4a666a0faa4a2d09aeed4db94746c097b1ca;hp=0000000000000000000000000000000000000000;hpb=7c74d4e371b7ecda2035aa106918b0427818cacf;p=cran2deb.git diff --git a/branch/patch/exec/depend b/branch/patch/exec/depend new file mode 100755 index 0000000..2552d8f --- /dev/null +++ b/branch/patch/exec/depend @@ -0,0 +1,95 @@ +#!/usr/bin/env r +## DOC: cran2deb depend +## DOC: add dependency aliases, system requirements and forced dependencies +## DOC: + +suppressPackageStartupMessages(library(cran2deb)) +suppressPackageStartupMessages(library(digest)) + +exec_cmd <- function(argc, argv) { + usage <- function() + message(paste('usage: alias ' + ,' alias_run ' + ,' alias_build ' + ,' sysreq ' + ,' force ' + ,' ls [aliases|force|sysreq]' + ,' quit' + ,sep='\n')) + + if (argc < 1) { + return() + } + cmd = argv[1] + + if (cmd == 'alias') { + if (argc < 3) { + usage() + return() + } + alias = argv[2] + pkg = argv[3] + db_add_depends(alias, pkg, build=T) + pkg = gsub('-dev$','',pkg) + db_add_depends(alias, pkg, build=F) + } else if (cmd == 'alias_run' || cmd == 'alias_build') { + if (argc < 3) { + usage() + return() + } + db_add_depends(argv[2], argv[3], cmd == 'alias_build') + } else if (cmd == 'sysreq') { + if (argc < 3) { + usage() + return() + } + sysreq = paste(argv[3:argc],collapse=' ') + db_add_sysreq_override(sysreq,argv[2]) + } else if (cmd == 'force') { + if (argc < 3) { + usage() + return() + } + db_add_forced_depends(argv[3],argv[2]) + } else if (cmd == 'ls') { + if (argc < 2 || argv[2] == 'aliases') { + aliases <- db_depends() + for (i in rownames(aliases)) { + type = 'alias_run' + if (as.logical(aliases[i,'build'])) { + type = 'alias_build' + } + cat(paste(type,aliases[i,'alias'],aliases[i,'debian_pkg'],'\n')) + } + } else if (argv[2] == 'sysreq') { + sysreqs <- db_sysreq_overrides() + for (i in rownames(sysreqs)) { + cat(paste('sysreq',sysreqs[i,'depend_alias'],sysreqs[i,'r_pattern'],'\n')) + } + } else if (argv[2] == 'force') { + forced <- db_forced_depends() + for (i in rownames(forced)) { + cat(paste('force',forced[i,'depend_alias'],forced[i,'r_name'],'\n')) + } + } else { + usage() + return() + } + } else if (cmd == 'quit') { + exit() + } else if (cmd == '#') { + } else { + usage() + return() + } +} + +argc <- length(argv) +if (argc > 1) { + exec_cmd(argc-1,argv[c(2:argc)]) +} else { + while(T) { + argv <- strsplit(readline('depend> '),'[[:space:]]+')[[1]] + exec_cmd(length(argv),argv) + } +}