Nikolay Edigaryev
ad9c3c661e
Reformat code idents and introduce the SwiftFormat linter ( #339 )
...
* Package.swift: add SwiftFormat
Can be invoked with "swift package plugin swiftformat".
* $ swift package plugin swiftformat
* .cirrus.yml: run SwiftFormat
* SwiftFormat: exclude Sources/tart/OCI/Reference/Generated
2022-11-29 15:56:13 +00:00
Nikolay Edigaryev
c27d4a089c
OCI: WWW-Authenticate's scheme should be treated case-insensitive ( #336 )
2022-11-25 16:59:38 +04:00
Nikolay Edigaryev
70f9fcc12e
tart run: do not check --disk lock for read-only attachments ( #334 )
2022-11-22 22:37:48 -05:00
Nikolay Edigaryev
456ebc1c7b
Rosetta support ( #324 )
2022-11-21 12:56:27 -05:00
Nikolay Edigaryev
14cbc727ad
tart run: check if the disks are locked ( #333 )
2022-11-21 17:42:53 +04:00
Nikolay Edigaryev
c09cbefdd0
VZVirtualMachineDelegate implementation: show the error details ( #330 )
2022-11-18 18:51:26 +04:00
sheldonneuberger-sc
de993fbf6d
use 64bit int for memory ( #327 )
2022-11-16 14:52:28 -05:00
Nikolay Edigaryev
f08ddf3855
Fetch IPSWs via file ( #322 )
2022-11-15 10:01:52 +04:00
Nikolay Edigaryev
8524d93741
Integration tests ( #313 )
...
* Integration tests
* Set "HOMEBREW_NO_AUTO_UPDATE=1" for virtualenv installation step
* Use CIRRUS_WORKING_DIR as temporary directory if present
2022-11-14 13:24:51 -05:00
Nikolay Edigaryev
833c162187
tart stop: return a different exit code when VM is not running ( #321 )
...
See https://github.com/cirruslabs/tart/pull/316#issuecomment-1311556674 .
2022-11-11 14:20:21 -05:00
Fedor Korotkov
31ba71dad7
Option to provide registry credentials via environment variables ( #320 )
...
Fixes #124
2022-11-11 18:32:23 +04:00
Nikolay Edigaryev
5e77968989
Introduce "tart stop" ( #316 )
2022-11-11 07:59:22 +04:00
Evan Burkey
f37372da28
Implement Get command ( #309 )
2022-11-10 09:14:14 +04:00
Nikolay Edigaryev
e600d2f036
Improve UninitializedVMDirectoryError() ( #314 )
2022-11-09 20:49:35 -05:00
Nikolay Edigaryev
b21dbbe3a3
Fetcher: do not use cookies to avoid CSRF checks ( #312 )
...
* Fetcher: do not use cookies to avoid CSRF checks
* Explain why we disable cookies
* Rename getURLSession() → createURLSession() and move it below
2022-11-09 14:27:45 -05:00
Nikolay Edigaryev
ee0fbdd83d
OCI: pull blobs via file ( #306 )
...
* OCI: pull blobs via file
* Explain why we delete the downloaded file after opening a handle to it
* Further abstract away ways to fetch a URLRequest
* No need to cast HTTPURLResponse to HTTPURLResponse
* Fetcher: no need to be a delegate anymore
* Fetcher.fetch() can be made static
2022-11-09 19:36:41 +04:00
Nikolay Edigaryev
fb954b7cc1
tart list: support -q (or --quiet) for automation purposes ( #293 )
2022-11-02 11:49:45 -04:00
Pete Goldsmith
3d0d889c99
Remove whitespace ( #285 )
2022-10-22 08:17:42 -04:00
Nikolay Edigaryev
0e77f14dd7
OCI: always read channel until end ( #284 )
2022-10-18 11:44:14 -04:00
Nikolay Edigaryev
39e1b84423
Use URLSession.dataTask() with delegate instead of URLSession.bytes() ( #282 )
...
* Use URLSession.dataTask() with delegate instead of URLSession.bytes()
* Use URLSession.shared instead of creating a new one each time
2022-10-18 08:54:28 -04:00
Fedor Korotkov
af7530ee50
Relax status code acceptance ( #281 )
...
* Relax status code acceptance
Fixes #273
* added a comment
2022-10-17 21:42:25 +04:00
Nikolay Edigaryev
36bb68a72d
tart run: deprecate --with-softnet and introduce --net-softnet ( #274 )
2022-10-14 18:38:39 +04:00
Nikolay Edigaryev
afd707eedf
OCI reference parser: allow dashes in host name ( #275 )
2022-10-14 16:36:25 +04:00
Nikolay Edigaryev
c67efb88f3
Fix tart prune --cache-budget logic ( #272 )
2022-10-14 01:43:37 +04:00
Nikolay Edigaryev
667de2a199
Monitor Softnet process and throw if it terminates prematurely ( #270 )
2022-10-12 20:00:13 +04:00
Nikolay Edigaryev
44650e9713
Improve RemoteName parser ( #225 ) ( #269 )
...
* Improve RemoteName parser
* Remove Parsing import
* Permit namespace components to contain separators, but no more than one
* Add testNoPathTraversal
2022-10-11 22:59:44 +04:00
Nikolay Edigaryev
62ee42de3b
Plug URLSession.bytes() memory leak ( #267 )
2022-10-10 18:38:57 +04:00
Nikolay Edigaryev
89301d114e
Log cache pruning to $TART_HOME/tart.log ( #265 )
...
* Log cache pruning to $TART_HOME/tart.log
* Log zero capacities
2022-10-07 23:01:42 +04:00
Nikolay Edigaryev
dbb33d0651
Don't download IPSWs into memory ( #262 )
2022-10-06 20:33:34 +04:00
Nikolay Edigaryev
166e3e570f
Ditch AsyncHTTPClient in favor of URLSession ( #260 )
2022-10-05 00:39:36 +04:00
Nikolay Edigaryev
7a2c20ba30
tart create: support fetching URLs specified in the --from-ipsw option ( #256 )
...
* tart create: support fetching URLs specified in the --from-ipsw option
* Use x-amz-meta-digest-sha256 header to cache IPSWs
2022-09-27 23:36:18 +04:00
Nikolay Edigaryev
e90d53eceb
tart delete: allow removing multiple VMs at once ( #257 )
2022-09-27 10:30:44 -04:00
Nikolay Edigaryev
afbc2e0764
tart ip: keep waiting for the /var/db/dhcpd_leases file to appear ( #254 )
2022-09-22 10:24:14 -04:00
Fedor Korotkov
0229138bd5
Fixed wait delay for IP command ( #250 )
...
I initially wanted a one-second wait but made a human mistake.
Fixes #249
2022-09-19 21:44:14 +04:00
Nikolay Edigaryev
4d08e6365e
Set line-buffered output for stdout and introduce --graphics for tart run ( #248 )
...
* Set line-buffered output for stdout
* tart run: introduce --graphics
* Update Sources/tart/Commands/Run.swift
Co-authored-by: Pete Goldsmith <peter.n.goldsmith@gmail.com>
* Update Sources/tart/Commands/Run.swift
Co-authored-by: Pete Goldsmith <peter.n.goldsmith@gmail.com>
Co-authored-by: Pete Goldsmith <peter.n.goldsmith@gmail.com>
2022-09-19 21:43:37 +04:00
Nikolay Edigaryev
4e20ea8f72
tart run: introduce --net-bridged ( #245 )
...
* tart run: introduce --net-bridged
* tart.entitlements: add com.apple.vm.networking
2022-09-14 17:53:04 +04:00
Nikolay Edigaryev
678ce0a55a
Introduce "tart rename" command to rename VMs ( #246 )
...
* Introduce "tart rename" command to rename VMs
* Remove unused SystemConfiguration import
* Update Sources/tart/Commands/Rename.swift
Co-authored-by: Pete Goldsmith <peter.n.goldsmith@gmail.com>
Co-authored-by: Pete Goldsmith <peter.n.goldsmith@gmail.com>
2022-09-14 17:44:26 +04:00
Fedor Korotkov
6321d547cf
Improve available capacity checking ( #240 )
...
* Improve available capacity checking
* Fixed expression
2022-09-12 21:55:25 +04:00
Nikolay Edigaryev
f241e21614
Self-hosted temporary directory ( #238 )
2022-09-12 20:56:52 +04:00
Pete Goldsmith
87f29cc11f
Clarify requirements for `dir` argument ( #231 )
2022-09-07 09:02:46 -04:00
Pete Goldsmith
90d1393137
Handle tilde in path for directory share ( #233 )
...
* Expand Tilde in path
* Expand tilde in disk paths
2022-09-07 08:15:29 -04:00
Nikolay Edigaryev
625d431d10
Revert "Improve RemoteName parser ( #225 )" ( #230 )
...
This reverts commit ae7018c31f .
2022-09-06 22:13:30 +04:00
Nikolay Edigaryev
4648e1aea1
tart clone: clone VM and generate MAC under a file lock ( #215 )
...
* tart clone: clone VM and generate MAC under a file lock
* Lock concurrent "tart pull"'s for the same host
* Config: ensure Tart's home and cache directories always exist
2022-09-06 21:33:51 +04:00
Nikolay Edigaryev
ae7018c31f
Improve RemoteName parser ( #225 )
...
* Improve RemoteName parser
* Remove Parsing import
* Permit namespace components to contain separators, but no more than one
* Add testNoPathTraversal
2022-09-06 17:28:49 +04:00
Pete Goldsmith
e54c89da0c
Clarify if guest or host is unsupported ( #228 )
2022-09-06 09:23:41 -04:00
Nikolay Edigaryev
9a0ec3e6b0
Fix cache reclaimed bytes calculation ( #223 )
2022-09-01 16:12:48 -04:00
Fedor Korotkov
400f85a493
Check Tart Home for auto-pruning ( #220 )
...
Otherwise it's weird we check $TMP but prune $TART_HOME
2022-09-01 15:44:19 -04:00
Fedor Korotkov
0105280b5d
Support plaintext auths from Docker config ( #219 )
2022-09-01 23:10:52 +04:00
Nikolay Edigaryev
0cad2e454c
Directory sharing support ( #211 )
2022-08-30 10:26:16 +04:00
Nikolay Edigaryev
17dcf942c1
Terminate VM on GUI window close ( #210 )
2022-08-30 02:41:58 +04:00