tmtsoftware / icd

ICD - Interface Control Document Management
Other
12 stars 5 forks source link

install.sh generates many warnings "will not overwrite just-created" #20

Closed edwardchapin closed 8 years ago

edwardchapin commented 8 years ago

This issue is just an annoyance.

When I execute install.sh on an Ubuntu 14.04 system, there is a lot of noise generated by cp, like:

cp: will not overwrite just-created ‘../install_icd/lib/ch.qos.logback.logback-classic-1.1.1.jar’ with ‘icd/target/universal/stage/lib/ch.qos.logback.logback-classic-1.1.1.jar’
cp: will not overwrite just-created ‘../install_icd/lib/ch.qos.logback.logback-core-1.1.1.jar’ with ‘icd/target/universal/stage/lib/ch.qos.logback.logback-core-1.1.1.jar’
cp: will not overwrite just-created ‘../install_icd/lib/com.fasterxml.jackson.core.jackson-annotations-2.2.3.jar’ with ‘icd/target/universal/stage/lib/com.fasterxml.jackson.core.jackson-annotations-2.2.3.jar’
...

The reason is that install.sh is making multiple copies of the same jar file from different source directories in a single target directory:

for i in bin lib ; do cp -f */target/universal/stage/$i/* $dir/$i/; done

Note, for example, that this will pick up two copies of this .jar file and try to write them to the same place:

ls */target/universal/stage/lib/ch.qos.logback.logback-classic-1.1.1.jar
icd-db/target/universal/stage/lib/ch.qos.logback.logback-classic-1.1.1.jar  icd/target/universal/stage/lib/ch.qos.logback.logback-classic-1.1.1.jar

One solution would be a nested for-loop (the inner loop would be over each subdirectory of */target/universal/stage/$i/*) for example... or perhaps something clever with rsync.

abrighton commented 8 years ago

I updated the install.sh script to avoid the warning.