Comments (7)
hey thanks for reporting this -- I've refactored the code, take a look at the source in src/cp.js
. if you find the solution please bundle a test in test/cp.js
too, thanks again!
from shelljs.
I think I am running into this issue as well.
from shelljs.
Hi @arturadib
How about the following condition ?
$ git diff src/cp.js
diff --git a/src/cp.js b/src/cp.js
index ef19f96..6a0abba 100644
--- a/src/cp.js
+++ b/src/cp.js
@@ -73,6 +73,14 @@ function cpdirSyncRecursive(sourceDir, destDir, opts) {
cpdirSyncRecursive(srcFile, destFile, opts);
} else if (srcFileStat.isSymbolicLink()) {
var symlinkFull = fs.readlinkSync(srcFile);
+ if (fs.existsSync(destFile)) {
+ if (!opts.force) {
+ common.log('skipping existing file: ' + files[i]);
+ return;
+ } else {
+ fs.unlinkSync(destFile);
+ }
+ }
fs.symlinkSync(symlinkFull, destFile, os.platform() === "win32" ? "junction" : null);
} else {
/* At this point, we've hit a file actually worth copying... so copy it on over. */
from shelljs.
@arturadib And.. one more question.
I'm looking for the way to copy the real files of symlink links, @eisnerd's PR(eisnerd@2e0ab9d) looks a solution about this.. So, I'm curious if this PR can be applied to the master.
from shelljs.
No PR has been opened including eisnerd@2e0ab9d, but one could be opened for master, i.e., including the commit with the test. I'm not sure this relates to #69. I may have misunderstood #69 as relating to creation of dangling symlinks, which fails in windows, from what I remember.
from shelljs.
@arturadib , @eisnerd :
I just made a PR (#164), referred to eisnerd@2e0ab9d and added some condition to delete the existing files for -f
option.
from shelljs.
I think the original issue has since been fixed. I'm going to close this, but I'll open another issue that discusses some of the other issues surrounding symlinks.
from shelljs.
Related Issues (20)
- Sdtout is empty if using another shell
- Using exec does not terminate the command process HOT 1
- Codecov broken on CI
- Shell.exec() freezes HOT 6
- Feature request (cp): -v flag for verbose output HOT 3
- Feature request (true, false) HOT 1
- test-with-coverage is broken on node v16 HOT 1
- `cd.js` swallows the initial error HOT 1
- "TypeError: common.register is not a function" under node v20.6.0 HOT 13
- GitHub actions dropping support for node < 16
- Exec failure on Node 21 HOT 1
- In mv command, there should be en error if destination directory not present. HOT 1
- shell.exec(`mv a/m.js b/`) cannot return error stdout HOT 2
- Latest shelljs type definitions have errors HOT 1
- Vulnerability in shelljs dependency: CWE-772: Missing Release of Resource after Effective Lifetime HOT 4
- shelljs.exec or child_process.exec not executing HOT 2
- Shelljs EXEC does not work when running a pre-compiled binary application HOT 4
- Attempted to import the Node standard library module "fs" HOT 1
- A problem with cd outside the project HOT 3
- `exec-child.js` module not found, when running `shell.exec()` on Next.js Server Actions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shelljs.