示例#1
0
        /// <summary>
        /// Copy the given directory (<paramref name="a_directory"/>) into "this" directory (<paramref name="a_this"/>).
        /// </summary>
        /// <param name="a_this">"This" directory.</param>
        /// <param name="a_directory">Directory to copy.</param>
        /// <exception cref="NullReferenceException">Thrown if <paramref name="a_this"/> is null.</exception>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="a_directory"/> is null.</exception>
        public static IDirectory CopyIn(this IDirectory a_this, IDirectory a_directory)
        {
            #region Argument Validation

            if (a_this == null)
            {
                throw new NullReferenceException(nameof(a_this));
            }

            if (a_directory == null)
            {
                throw new ArgumentNullException(nameof(a_directory));
            }

            #endregion

            if (!a_directory.Exists)
            {
                throw new DirectoryNotFoundException($"Directory at path \"{a_directory.Path}\" does not exist.");
            }

            if (!a_this.Exists)
            {
                throw new DirectoryNotFoundException($"Directory at path \"{a_this.Path}\" does not exist.");
            }

            var newDirectory = a_this.Directory(a_directory.Name);
            a_directory.CopyTo(newDirectory);

            return(newDirectory);
        }
示例#2
0
            public override bool?Anchor(IDirectory packagesDirectory, IDirectory packageDirectory, string anchorName)
            {
                var anchoredDirectory = packagesDirectory.GetDirectory(anchorName);

                if (anchoredDirectory.Exists && anchoredDirectory.IsHardLink && !anchoredDirectory.SafeDelete())
                {
                    return(false);
                }
                anchoredDirectory = packagesDirectory.GetDirectory(anchorName);
                if (anchoredDirectory.Exists)
                {
                    // convert old anchor file to new name
                    TryConvertOldAnchorMarker(anchoredDirectory);
                    var anchorFile = anchoredDirectory.GetFile(ANCHOR_MARKER_FILENAME);
                    if (anchorFile.Exists && anchorFile.ReadString() == packageDirectory.Name)
                    {
                        return(null);
                    }

                    if (!anchoredDirectory.SafeDelete())
                    {
                        return(false);
                    }
                }
                packageDirectory.CopyTo(anchoredDirectory);
                anchoredDirectory.GetFile(ANCHOR_MARKER_FILENAME).WriteString(packageDirectory.Name);
                return(true);
            }
示例#3
0
            public override bool?Anchor(IDirectory packagesDirectory, IDirectory packageDirectory, string anchorName)
            {
                var anchoredDirectory = packagesDirectory.GetDirectory(anchorName);

                if (anchoredDirectory.Exists && anchoredDirectory.IsHardLink && !SafeDelete(anchoredDirectory))
                {
                    return(false);
                }
                anchoredDirectory = packagesDirectory.GetDirectory(anchorName);
                if (anchoredDirectory.Exists)
                {
                    var anchorFile = anchoredDirectory.GetFile(".anchored");
                    if (anchorFile.Exists && anchorFile.ReadString() == packageDirectory.Name)
                    {
                        return(null);
                    }

                    if (!SafeDelete(anchoredDirectory))
                    {
                        return(false);
                    }
                }
                packageDirectory.CopyTo(anchoredDirectory);
                anchoredDirectory.GetFile(".anchored").WriteString(packageDirectory.Name);
                return(true);
            }
示例#4
0
        public void Build(IBuildContext context)
        {
            IDirectory copyDir = context.Disk.Directory(context.NoBuildPath, PathTypes.Absolute);

            if (copyDir.Exists())
            {
                copyDir.CopyTo(context.ReleasePath);
            }

            BuildPipeline.BuildAssetBundles("Assets" + context.ReleasePath.Substring(Env.DataPath.Length),
                                            BuildAssetBundleOptions.None,
                                            context.BuildTarget);
        }
示例#5
0
        /// <summary>
        /// Copy the given directory (<paramref name="a_directory"/>) into "this" directory (<paramref name="a_this"/>).
        /// </summary>
        /// <param name="a_this">"This" directory.</param>
        /// <param name="a_directory">Directory to copy.</param>
        /// <exception cref="NullReferenceException">Thrown if <paramref name="a_this"/> is null.</exception>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="a_directory"/> is null.</exception>
        public static IDirectory CopyIn(this IDirectory a_this, IDirectory a_directory)
        {
            #region Argument Validation

            if (a_this == null)
                throw new NullReferenceException(nameof(a_this));

            if (a_directory == null)
                throw new ArgumentNullException(nameof(a_directory));

            #endregion

            if (!a_directory.Exists)
                throw new DirectoryNotFoundException($"Directory at path \"{a_directory.Path}\" does not exist.");

            if (!a_this.Exists)
                throw new DirectoryNotFoundException($"Directory at path \"{a_this.Path}\" does not exist.");

            var newDirectory = a_this.Directory(a_directory.Name);
            a_directory.CopyTo(newDirectory);

            return newDirectory;
        }
示例#6
0
 void Anchor(IDirectory packageDirectory, IDirectory anchoredDirectory)
 {
     var anchoredPath = anchoredDirectory.Path;
     if (_useSymLinks)
         packageDirectory.LinkTo(anchoredPath.FullPath);
     else
     {
         packageDirectory.CopyTo(anchoredDirectory);
         anchoredDirectory.GetFile(".anchored").WriteString(packageDirectory.Name);
     }
 }
示例#7
0
            public override bool? Anchor(IDirectory packagesDirectory, IDirectory packageDirectory, string anchorName)
            {
                var anchoredDirectory = packagesDirectory.GetDirectory(anchorName);

                if (anchoredDirectory.Exists && anchoredDirectory.IsHardLink && !SafeDelete(anchoredDirectory))
                    return false;
                anchoredDirectory = packagesDirectory.GetDirectory(anchorName);
                if (anchoredDirectory.Exists)
                {
                    var anchorFile = anchoredDirectory.GetFile(".anchored");
                    if (anchorFile.Exists && anchorFile.ReadString() == packageDirectory.Name) return null;

                    if (!SafeDelete(anchoredDirectory)) return false;
                }
                packageDirectory.CopyTo(anchoredDirectory);
                anchoredDirectory.GetFile(".anchored").WriteString(packageDirectory.Name);
                return true;
            }