-
Notifications
You must be signed in to change notification settings - Fork 106
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
Windows updates: seconds attempt #248
base: master
Are you sure you want to change the base?
Conversation
…EPATH, and added in the wich package for fining git, curl and meteor. This seems to work reasonably well in cmd.exe and in cygwin. Still working on test issues though.
…s now it's changed iff there was no such env variable before
…using taskkill.exe)
…doesn't do that itself
…s via a shared function for building the full path based on the subdirectory path provided. Updated the tests to call meteorite instead of mrt, so that windows will be able to execute them as well. There are a lot of tests to address to get the windows execution working at 100%.
…ve() to be consistent with what package.js do on Windows (driver letter issue)
Conflicts: spec/acceptance/test_spec.js
… windows consistent in both cygwin and cmd. Changed the mrt.js call to use the meteorite.cmd file created by 'npm install'. This fixed 38 tests for me. - TODO: Refactor how we get the paths for tests, fix the 3 remaining tests and clean up a few odds and ends.
Conflicts: spec/lib/atmosphere.js spec/support/bin/curl
…ectory is pre-created as a workaround for windows git
…s - it's one of ./bin/mrt.{js,bat} (the latter was added)
…e target path before calling REAL_GIT
…om directories with spaces
…oriteExecutable to work OK from folders with spaces
…ich waits till stdout/stderr buffers are flushed on Windows before exit
….js was correspondingly modified
…ch added '.bat' to 'meteor' command before spawn-cmd
…t.json, smart.lock and .gitignore - original EOL is used or os.EOL of there were no such file
…les instead of '\n'
…tructor and reads both smart.lock and smart.json
Conflicts: lib/meteor.js
…te on Windows and the new 'meteorite' command
As for all I can say this looks good. Does seem like the second issue might be resolved (featurist/spawn-cmd#3), but the issue is still open it seems. |
The usage of junctions makes it mandatory to run mrt as administrator. This is not very nice and should at least be mentioned in the readme. "Ordinary" symbolic links can AFAIK be created by normal users, but that has also drawbacks. I think there are some libraries that fake unix style symbolic links, maybe that would be a better approach? |
@Hades32 are you sure about directory junctions? It's not the same as symbolic/hard link on Windows. I've just tried to create one under a restricted user and it succeeded, while creation of hard link to file/directory failed because of lack of rights. Moreover, this branch of Meteorite works just fine under restricted user too. |
@Hades32 were you using a directory path outside of your users directory? |
Well, I tested it that way:
So, yes, I'm testing outside of my user directory, but I'm the owner of the directory and I'm administrator (just running an ordinary (not elevated) prompt. |
@Hades32 so what's the problem? Meteorite use the second way (directory junctions) and your log says it's OK, isn't it? |
Well, maybe I made some false assumptions there, but my problem essentially is this:
|
@Hades32 are you able to reproduce this issue in another directory? Say, clean check out of some project in your home directory? Are you able to manually create directory junction between the path Meteorite displayed and corresponding directory in |
Interestingly I cannot reproduce inside my user directory. As both are owned by the same user I don't really understand why though. I AM able to create a junction between above path and the packages dir - so that doesn't really give a hint either... |
@yeputons Managed to get your branch working by doing the following on my Windows 8 workstation: Cloned the oortcloud/meteorite repo Needed to install the prerequisite npm packages, and then meteorite: $ npm install -g ddp,underscore,wrench,fstream,optimist,prompt,colors,async,rolling_timeout_exec,which,exit,spawn-cmd,mocha,connect,meteorite
$ npm install -g meteorite Had to change some of the package version numbers in the package.json:
After this, I got your code working, as long as the
Sometimes after issuing a All in all it seems to work. Tried these steps on a second PC successfully as well. As long as the Again, thanks. Regards Rudolf Windows PowerShell
Copyright (C) 2013 Microsoft Corporation. Alle Rechte vorbehalten.
PS C:\Users\rb> npm install -g ddp,underscore,wrench,fstream,optimist,prompt,colors,async,rolling_timeout_exec,which,exi
t,spawn-cmd,mocha,connect
C:\Users\rb\AppData\Roaming\npm\which -> C:\Users\rb\AppData\Roaming\npm\node_modules\which\bin\which
C:\Users\rb\AppData\Roaming\npm\_mocha -> C:\Users\rb\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
C:\Users\rb\AppData\Roaming\npm\mocha -> C:\Users\rb\AppData\Roaming\npm\node_modules\mocha\bin\mocha
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\rolling_timeout_exec
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\which
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\spawn-cmd
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\colors
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\underscore
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\async
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\wrench
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\exit
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\fstream
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\optimist
+-- [email protected]
+-- [email protected]
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\ddp
+-- [email protected]
+-- [email protected]
+-- [email protected] ([email protected])
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\connect
+-- [email protected]
+-- [email protected]
+-- [email protected] ([email protected])
+-- [email protected] ([email protected], [email protected])
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\mocha
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected] ([email protected])
+-- [email protected] ([email protected], [email protected])
+-- [email protected] ([email protected], [email protected], [email protected])
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\prompt
+-- [email protected]
+-- [email protected]
+-- [email protected] ([email protected])
+-- [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
+-- [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
PS C:\Users\rb> npm install -g meteorite
C:\Users\rb\AppData\Roaming\npm\mrt -> C:\Users\rb\AppData\Roaming\npm\node_modules\meteorite\bin\mrt.js
> [email protected] postinstall C:\Users\rb\AppData\Roaming\npm\node_modules\meteorite
> sh ./completions/postinstall.sh
[email protected] C:\Users\rb\AppData\Roaming\npm\node_modules\meteorite
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected] ([email protected], [email protected])
+-- [email protected] ([email protected], [email protected], [email protected], [email protected])
+-- [email protected] ([email protected], [email protected], [email protected])
+-- [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
PS C:\Users\rb> |
@tmeasday @seanmwalker @sdarnell I think that it's time to create a new pull request so that we can see all changes in one place. I've disabled meteor pinning for Windows and added some line endings heuristics which tries to preserve type of EOLs in
smart.lock
,smart.json
and.gitignore
(os.EOL
is used by default).meteorite create-project
creates stub project with system-specific EOLs.No spaces folder:
Folder with spaces (it implies that
HOME
directory have spaces during testing too):git
by its name during regular work, not by its absolute path and therefore this path is not getting quoted.Things left to do:
Waiting for your comments, code review and thoughts on the second TODO thing.