Commit | Line | Data |
---|---|---|
156f8ca6 BA |
1 | # Core function to unload a package (UNsource R files and unload C libraries) |
2 | # @param path Location or name of the (non-standard) package to be unloaded | |
3 | .pkgdev.unload = function(path) { | |
4 | ||
5 | # Get package name from path | |
6 | pathTokens = strsplit(path, c(.Platform$file.sep))[[1]] | |
7 | pkgName = pathTokens[length(pathTokens)] | |
8 | ||
9 | # This file tells if the package is currently loaded | |
10 | pkdev_path = file.path(Sys.getenv("R_HOME_USER"), "pkgdev") | |
11 | pkgLoadFile = file.path(pkdev_path,"pkgs",pkgName,"loaded") | |
12 | ||
13 | # Unload shared library (if any) | |
14 | if (file.exists(pkgLoadFile)) { | |
15 | sharedLib = file.path(pkdev_path,"pkgs",pkgName,paste(pkgName,.Platform$dynlib.ext,sep='')) | |
16 | dyn.unload(sharedLib) | |
17 | unlink(pkgLoadFile) | |
18 | } | |
19 | } |