Skip to content

Conversation

@kent13n
Copy link

@kent13n kent13n commented Sep 22, 2023

When using the 'php artisan storage:link' command in the vapor.yml file, deploying or building on Windows becomes impossible as the application compression fails everytime. I added a check to avoid adding symbolic paths to the zip archive on Windows by verifying that we are on the Windows OS, that the file is a directory, and that it is a symbolic link. I used 'array_diff' because the 'is_link' function always returns false on Windows. See: https://bugs.php.net/bug.php?id=65697.

@joedixon joedixon marked this pull request as draft September 22, 2023 12:32
@didix16
Copy link

didix16 commented Nov 12, 2024

Hi there, is this any fix be merged someday? I've have a similiar problem but at the Copy Stage.

PHP Warning:  copy(): The first argument to copy() function cannot be a directory.

That warning shows up when this code is being executed:
https://github.com/laravel/vapor-cli/blob/cf4090018bc15472bec1f3a75238312c902fc2d7/src/BuildProcess/CopyApplicationToBuildPath.php#L25C9-L33C10

It seems that junctions files on windows are not being propely detected by SplFileInfo. This is what I get after trying to get file info on tinker:

$f = new SplFileInfo("vendor/myVendor/MyLocalPackage");                                                                                                                                                                               
PHP Notice:  SplFileInfo::getType(): Unknown file type (0) in C:\Users\User\Documents\projects\myProject\vendor\symfony\var-dumper\Caster\SplCaster.php on line 134
= SplFileInfo {#6705
    path: "vendor/myVendor",
    filename: "MyLocalPackage",
    basename: "MyLocalPackage",
    pathname: "vendor/myVendor/MyLocalPackage",
    extension: "",
    realPath: "C:\Users\User\Documents\projects\myProject\nova-components\MyLocalPackage",
    aTime: 2024-11-12 14:30:55,
    mTime: 2023-05-30 11:11:53,
    cTime: 2023-05-30 11:11:53,
    inode: 281474976917772,
    size: 4096,
    perms: 040777,
    owner: 0,
    group: 0,
    type: "unknown",
    writable: true,
    readable: true,
    executable: false,
    file: false,
    dir: false,
    link: false,
    linkTarget: "C:\Users\User\Documents\projects\myProject\nova-components\MyLocalPackage",
  }

if I input the "dir" command on cmd at path vendor\myVendor, I get this:

Directory of C:\Users\User\Documents\projects\myProject\vendor\myVendor

12/11/2024  11:11    <DIR>          .
12/11/2024  11:14    <DIR>          ..
12/11/2024  11:11    <JUNCTION>     MyLocalPackage [C:\Users\User\Documents\projects\myProject\nova-components\MyLocalPackage]

Thanks in advance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants