finestructure / Arena

A command line tool to create Swift Playground projects with SPM package dependencies
MIT License
685 stars 16 forks source link

Doesn't work with paths containing spaces, or the `.` directory #53

Closed RISCfuture closed 4 years ago

RISCfuture commented 4 years ago

The following invocations fail with "invalid value for dependency" or "invalid value for output":

arena -o . some/dependency arena -o some\ output/path some/dependency arena -o some/output/path some\ dependency/path arena -o "some output/path" some/dependency arena -o some/output/path "some dependency/path"

finestructure commented 4 years ago

Ah, good find - I'l need to check the path escaping...

The first one is technically redundant, as "." is the default (and if you want to be explicit you can use -o $PWD for now. Still "." should work though :)

Thanks for raising the issue!

robbiemu commented 4 years ago

also doesn't work for paths containing a space:

MacBook-Pro:swift robertotomas$ arena https://github.com/Jounce/Surge
➡️  Package: https://github.com/Jounce/Surge @ from(2.3.0)
🔧 Resolving package dependencies ...
📔 Libraries found: Surge
🔨 Building package dependencies ...
✅ Created project in folder 'Arena-Playground'
Error: ShellOut encountered an error
Status code: 1
Message: "The files /Users/robertotomas/Public/Neural, /Users/robertotomas/Public/Neural Networks from Scratch/swift/Networks, /Users/robertotomas/Public/Neural Networks from Scratch/swift/from, and /Users/robertotomas/Public/Neural Networks from Scratch/swift/Scratch/swift/Arena-Playground/Arena-Playground.xcworkspace do not exist."
Output: ""
MacBook-Pro:swift robertotomas$ pwd
/Users/robertotomas/Public/Neural Networks from Scratch/swift
finestructure commented 4 years ago

I've just pushed 0.16.1 which should fix these issue. Please update via

brew upgrade arena

and let me know if you're still seeing issues!

finestructure commented 4 years ago

@robbiemu I've just realised you were reporting a different issue - with a path with whitespace within a package.

This is actually not yet fixed in 0.16.1. I can reproduce it and will push 0.16.2.

finestructure commented 4 years ago

Actually, I take that back. It can launch that repository just fine now:

❯ arena https://github.com/Jounce/Surge@from:2.3.0 -f
➡️  Package: https://github.com/Jounce/Surge @ from(2.3.0)
🔧 Resolving package dependencies ...
📔 Libraries found: Surge
🔨 Building package dependencies ...
✅ Created project in folder 'Arena-Playground'

The error I was getting was due to a network issue.

robbiemu commented 4 years ago

actually it seems like that did it, I can now build, ⌘+B and run directly .. I bet there was more in your change than just that path!

edit: yes, even now I can directly just do arena Jounce/Surge