-
Notifications
You must be signed in to change notification settings - Fork 2
/
Workflow_to_Create_an_R_Package.R
76 lines (56 loc) · 2.67 KB
/
Workflow_to_Create_an_R_Package.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
######################################################################################################
# Workflow_to_Create_an_R_Package.R
######################################################################################################
# source("~/RoxygenReady/Workflow_to_Create_an_R_Package.R")
rm(list=ls(all.names = TRUE));
try(dev.off())
# Functions ------------------------
try (source ('~/TheCorvinas/R/CodeAndRoll.R'),silent= F)
# install.packages("roxygen2")
library(devtools, roxygen2)
# Setup ------------------------
RepositoryDir = "~/RoxygenReady/"
PackageName = "RoxygenReady"
fname = kollapse(PackageName,".R")
PackageDir = kollapse(RepositoryDir, PackageName)
Package_FnP = kollapse(PackageDir, "/R/", fname)
# file.exists(Package_FnP)
# dir.exists(PackageDir)
DESCRIPTION <- list("Title" = "A Roxygen Skeleton Parser",
"Authors@R" = person(given = "Abel", family = "Vertesy", email = "a.vertesy@hubrecht.eu", role = c("aut", "cre")),
"Description" = "Prepare your function-script to compile into a package by Roxygen2",
"License" = "GNU GPL 3"
)
setwd(RepositoryDir)
if ( !dir.exists(PackageName) ) { create(PackageName, description = DESCRIPTION) }
# go and write fun's ------------------------------------------------------------------------
file.edit(Package_FnP)
# Extract all function names from the script ------------------------------------------------
source(Package_FnP)
RoxygenReady(Package_FnP)
# replace output files ------------------------------------------------
BackupOldFile = kollapse(Package_FnP, ".bac", print = F)
AnnotatedFile = kollapse(Package_FnP, ".annot.R", print = F)
file.copy(from = Package_FnP, to = BackupOldFile, overwrite = T)
file.copy(from = AnnotatedFile, to = Package_FnP, overwrite = T)
# Manual editing of descriptors ------------------------------------------------
file.edit(Package_FnP)
# Compile a package ------------------------------------------------
setwd(PackageName)
getwd()
document()
# rr_function_overview_document("~/RoxygenReady/RoxygenReady/R/RoxygenReady.R")
# Install your package ------------------------------------------------
setwd(RepositoryDir)
install(PackageName)
require("RoxygenReady")
# Test your package ------------------------------------------------
help("RoxygenReady")
# help("print11more") # not in package any more
# Test if you can install from github ------------------------------------------------
devtools::install_github(repo = "vertesy/RoxygenReady/RoxygenReady")
require("RoxygenReady")
RoxygenReady("~/RoxygenReady/Development/01.Before.R")
# Clean up if not needed anymore ------------------------------------------------
# installed.packages()
# remove.packages("RoxygenReady")