--- /dev/null
+#!/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> <debian_pkg>'
+ ,' alias_run <alias> <debian_pkg>'
+ ,' alias_build <alias> <debian_pkg>'
+ ,' sysreq <alias> <sysreq sql pattern>'
+ ,' force <alias> <r_pkg>'
+ ,' 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') {
+ print(db_depends())
+ } else if (argv[2] == 'sysreq') {
+ print(db_sysreq_overrides())
+ } else if (argv[2] == 'force') {
+ print(db_forced_depends())
+ } 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)
+ }
+}