mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-05 04:19:30 +08:00
40 lines
No EOL
1.1 KiB
Text
40 lines
No EOL
1.1 KiB
Text
import { stat, statSync } from '../sander';
|
|
import { copydir, copydirSync } from './copydir';
|
|
import { copyFile, copyFileSync } from './copyFile';
|
|
import { symlink, symlinkSync } from '../specialMethods/symlink';
|
|
import resolvePathAndOptions from '../utils/resolvePathAndOptions';
|
|
|
|
const isWindows = process.platform === 'win32';
|
|
|
|
export function symlinkOrCopy () {
|
|
if ( isWindows ) {
|
|
const { resolvedPath: src, options: readOptions } = resolvePathAndOptions( arguments );
|
|
|
|
let copyDirOrFileTo = stat( src )
|
|
.then( stats => {
|
|
return ( stats.isDirectory() ? copydir : copyFile )
|
|
.apply( null, arguments )
|
|
.to;
|
|
});
|
|
|
|
return {
|
|
to () {
|
|
return copyDirOrFileTo
|
|
.then(fn => {
|
|
return fn.apply(null, arguments);
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
return symlink.apply( null, arguments );
|
|
}
|
|
|
|
export function symlinkOrCopySync () {
|
|
if ( isWindows ) {
|
|
const { resolvedPath: src, options: readOptions } = resolvePathAndOptions( arguments );
|
|
return ( statSync( src ).isDirectory() ? copydirSync : copyFileSync ).apply( null, arguments );
|
|
}
|
|
|
|
return symlinkSync.apply( null, arguments );
|
|
} |