#! /bin/env tclsh
package require {ycl chan string}
package require {ycl format rpackage}
package require {ycl test data}
package require {ycl proc}
namespace import [yclprefix]::proc::checkargs
package require {ycl test data}
package require {ycl test}
[yclprefix]::test::init
namespace eval doc {}
set setup1 {
set res [list]
set chan1 [::tcl::chan::string [description \
license $description_license_gpl_artistic]]
}
set cleanup1 {
close $chan1
}
proc suite_main {} {
foreach varname [info vars [namespace current]::*] {
variable $varname
}
test one {} -setup $setup1 -body {
coroutine parser ycl format rpackage description chan $chan1
while {[namespace which parser] eq "[namespace current]::parser"} {
set field [parser]
#puts "hey: $field"
lappend res $field
}
list {*}$res
} -cleanup $cleanup1 -result hmmph
}
variable doc::description {
description {
assemble a DESCRIPTION file
}
args {
license {}
}
}
proc description {args} {
variable description
checkargs doc::description
foreach {key value} $args[set args {}] {
lappend args \${$key} [string trim $value]
}
set res [string map $args $description]
return $res
}
proc description1 {} {
variable description
namespace upvar [namspace current] description_license_gpl_artistic license
string map [list \${license}
}
proc description2 {} {
variable description
variable description_license_file
}
variable description {
Package: pkgname
Version: 0.5-1
Date: 2004-01-01
Title: My First Collection of Functions
Authors@R: c(person("Joe", "Developer", role = c("aut", "cre"),
email = "Joe.Developer@some.domain.net"),
person("Pat", "Developer", role = "aut"),
person("A.", "User", role = "ctb",
email = "A.User@whereever.net"))
Author: Joe Developer and Pat Developer, with contributions from A. User
Maintainer: Joe Developer <Joe.Developer@some.domain.net>
Depends: R (>= 1.8.0), nlme
Suggests: MASS
Description: A short (one paragraph) description of what
the package does and why it may be useful.
${license}
URL: http://www.r-project.org, http://www.another.url
BugReports: http://pkgname.bugtracker.url
}
variable description_license_gpl_artistic {
License: GPL (>= 2) | Artistic-2.0 (>2,
,2 ,< 2.7)
}
variable description_license_file {
License: file LICENSE 2.0
}