]> git.donarmstrong.com Git - cran2deb.git/blob - tags/gsoc_final/exec/depend
f4a100aefac0b59d21d124c72e29754e7357b46e
[cran2deb.git] / tags / gsoc_final / exec / depend
1 #!/usr/bin/env r
2 ## DOC: cran2deb depend
3 ## DOC:     add dependency aliases, system requirements and forced dependencies
4 ## DOC:
5
6 suppressPackageStartupMessages(library(cran2deb))
7 suppressPackageStartupMessages(library(digest))
8
9 exec_cmd <- function(argc, argv) {
10     usage <- function()
11         message(paste('usage: alias <alias> <debian_pkg>'
12                      ,'       alias_run <alias> <debian_pkg>'
13                      ,'       alias_build <alias> <debian_pkg>'
14                      ,'       sysreq <alias> <sysreq sql pattern>'
15                      ,'       force <alias> <r_pkg>'
16                      ,'       ls [aliases|force|sysreq]'
17                      ,'       quit'
18                      ,sep='\n'))
19
20     if (argc < 1) {
21         return()
22     }
23     cmd = argv[1]
24
25     if (cmd == 'alias') {
26         if (argc < 3) {
27             usage()
28             return()
29         }
30         alias = argv[2]
31         pkg = argv[3]
32         db_add_depends(alias, pkg, build=T)
33         pkg = gsub('-dev$','',pkg)
34         db_add_depends(alias, pkg, build=F)
35     } else if (cmd == 'alias_run' || cmd == 'alias_build') {
36         if (argc < 3) {
37             usage()
38             return()
39         }
40         db_add_depends(argv[2], argv[3], cmd == 'alias_build')
41     } else if (cmd == 'sysreq') {
42         if (argc < 3) {
43             usage()
44             return()
45         }
46         sysreq = paste(argv[3:argc],collapse=' ')
47         db_add_sysreq_override(sysreq,argv[2])
48     } else if (cmd == 'force') {
49         if (argc < 3) {
50             usage()
51             return()
52         }
53         db_add_forced_depends(argv[3],argv[2])
54     } else if (cmd == 'ls') {
55         if (argc < 2 || argv[2] == 'aliases') {
56             print(db_depends())
57         } else if (argv[2] == 'sysreq') {
58             print(db_sysreq_overrides())
59         } else if (argv[2] == 'force') {
60             print(db_forced_depends())
61         } else {
62             usage()
63             return()
64         }
65     } else if (cmd == 'quit') {
66         exit()
67     } else if (cmd == '#') {
68     } else {
69         usage()
70         return()
71     }
72 }
73
74 argc <- length(argv)
75 if (argc > 1) {
76     exec_cmd(argc-1,argv[c(2:argc)])
77 } else {
78     while(T) {
79         argv <- strsplit(readline('depend> '),'[[:space:]]+')[[1]]
80         exec_cmd(length(argv),argv)
81     }
82 }