-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat: Copy several files to destination directory (optionally) #34
base: master
Are you sure you want to change the base?
Changes from 1 commit
855e115
53a42bc
9a6f023
f4b7e9d
e39ef60
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
using System.IO; | ||
using System.Threading.Tasks; | ||
using UnityEditor; | ||
using UnityEngine; | ||
|
||
namespace UniTools.Build | ||
{ | ||
[CreateAssetMenu( | ||
fileName = nameof(CopyFilesToDirectory), | ||
menuName = MenuPaths.IO + nameof(CopyFilesToDirectory) | ||
)] | ||
public sealed class CopyFilesToDirectory : BuildStep | ||
{ | ||
[SerializeField] private PathProperty[] m_filePaths = default; | ||
[System.Obsolete, HideInInspector] | ||
[SerializeField] private PathProperty m_filePath = default; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks like can be removed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed. Since we won't be replacing CopyFileToDirectory, we don't need to replicate its properties. |
||
[SerializeField] private PathProperty m_destination = default; | ||
|
||
public override async Task Execute() | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Check is the m_sourceDirectory path is a directory path. If not - throw an exception There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good idea. I will make sure |
||
{ | ||
foreach (var filePath in m_filePaths) | ||
{ | ||
string fileName = Path.GetFileName(filePath.ToString()); | ||
string dest = Path.Combine(m_destination.ToString(), fileName); | ||
FileUtil.DeleteFileOrDirectory(dest); | ||
FileUtil.CopyFileOrDirectory(filePath.ToString(), dest); | ||
} | ||
|
||
await Task.CompletedTask; | ||
} | ||
|
||
private void OnValidate() | ||
MoxieWhimsy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
{ | ||
if (m_filePaths.Length == 0 && !string.IsNullOrEmpty(m_filePath.ToString())) | ||
{ | ||
m_filePaths = new[] { m_filePath }; | ||
} | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can name it m_sourceDirectory
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. I will add a property for source directory. It may simplify using this build step. However I will also rename this to
m_sourceFiles
for clarity.