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
|
// source and dest, absolute or reachable from g_cwd, should exist.
// files and links in source matching dest (if empty: all) are copied to dest
// and are logged in g_log
// Before they are logged, dest is created
void logInstall(string src, string pattern, string dest)
{
list entries;
int idx;
chdir(g_cwd);
md(dest);
src += "/";
dest += "/";
if (listlen(makelist(O_DIR, src)) == 0)
{
printf("Warning: ", src, " not found: can't install ", src, pattern,
" at ", dest, "\n");
return;
}
entries = findAll("f", src, pattern); // all files in the src dir.
for (idx = listlen(entries); idx--; ) // cp all files to the target
run("cp " + src + entries[idx] + " " + dest); // dir
chdir(g_cwd);
entries = findAll("l", src, pattern); // find all links
for (idx = listlen(entries); idx--; )
{
if (strlen(entries[idx]) != 0) // install existing links
run("cp " CPOPTS " " + src + entries[idx] + " " + dest);
}
}
|