3 suppressPackageStartupMessages(library(cran2deb))
4 suppressPackageStartupMessages(library(digest))
6 exec_cmd <- function(argc, argv) {
8 message('usage: add <license> [deny]|file <license> <path>|ls|quit|help')
16 if (argc != 2 && (argc != 3 || argv[3] != 'deny')) {
21 db.add.license.override(argv[2],accept)
22 } else if (cmd == 'file') {
29 if (is.null(db.license.override.name(license))) {
30 message(paste('license',license,'is not known'))
33 if (file.exists(path)) {
34 file_sha1 = digest(readChar(path,file.info(path)$size)
35 ,algo='sha1', serialize=FALSE)
36 } else if (length(grep('^[0-9a-f]{40}$',path))) {
39 stop(paste(path,'does not exist and does not look like an SHA1 hash'))
41 db.add.license.file(license,file_sha1)
42 } else if (cmd == 'ls') {
43 for (x in db.license.overrides()) print(x)
44 } else if (cmd == 'help') {
47 } else if (cmd == 'quit') {
54 exec_cmd(argc-1,argv[c(2:argc)])
57 argv <- strsplit(readline('license> '),'[[:space:]]+')[[1]]
58 exec_cmd(length(argv),argv)