Create all the base files and folders to kickstart the development of a new outsider module. Returns file path to new module.
module_skeleton( program_name, repo_user = NULL, docker_user = NULL, flpth = getwd(), module_name = NULL, cmd = program_name, full_name = NULL, email = NULL, service = c("github", "gitlab", "bitbucket"), overwrite = FALSE )
Name of the command-line program.
Developer's username for code sharing service. If NULL, no code sharing site information is added.
Developer's username for Docker. If NULL, no docker information is added.
File path to location of where module will be created, default current working directory.
Name of the module, if NULL rendered as "om..[program_name]"
Command-line call for program, default [program_name]
Your full name (for authorship)
Your email (for authorship)
Automatically overwrite pre-existing files? If FALSE, user is queried whether to overwrite for each pre-existing file.
library(outsider) # build file structure for an example module module_path <- module_skeleton(program_name = "goldenhind", repo_user = "drake_on_github", docker_user = "drake_on_docker", full_name = 'Sir Francis Drake', email = '[email protected]', service = 'github', flpth = tempdir()) # new path created (module_path)#>  "/tmp/RtmpLHBbZM/om..goldenhind"# check the generated names and links module_identities(flpth = module_path)#> R package name: 'om..goldenhind' #> URL: 'https://github.com/drake_on_github/om..goldenhind' #> Docker images: 'drake_on_docker/om_goldenhind:latest'# check the files are in the right locations module_check(flpth = module_path)#> DESCRIPTION found ✔ #> R folder with files found ✔ #> inst found ✔ #> inst/om.yml found ✔ #> inst/dockerfiles found ✔ #> inst/dockerfiles/latest with one Dockerfile found ✔# deliberately break: delete a folder and check again unlink(x = file.path(module_path, 'inst'), recursive = TRUE, force = TRUE) module_check(flpth = module_path)#> DESCRIPTION found ✔ #> R folder with files found ✔ #> inst not found ✖# clean-up unlink(x = module_path, recursive = TRUE, force = TRUE)