1
1
mod consts;
2
2
3
- use std:: path:: PathBuf ;
3
+ use std:: { collections :: BTreeMap , path:: PathBuf , sync :: Arc } ;
4
4
5
5
use clap:: Parser ;
6
+ use pixi_manifest:: TargetSelector :: Platform ;
7
+ use rattler_build:: {
8
+ hash:: HashInfo ,
9
+ metadata:: { BuildConfiguration , Directories , Output , PackagingSettings } ,
10
+ recipe:: {
11
+ parser:: { Package , PathSource , Source } ,
12
+ Recipe ,
13
+ } ,
14
+ } ;
15
+ use rattler_build:: recipe:: parser:: { Build , Requirements } ;
16
+ use rattler_conda_types:: { package:: ArchiveType , NoArchType } ;
17
+ use rattler_package_streaming:: write:: CompressionLevel ;
6
18
7
19
#[ allow( missing_docs) ]
8
20
#[ derive( Parser ) ]
@@ -18,4 +30,70 @@ fn main() {
18
30
19
31
// Load the manifest
20
32
eprintln ! ( "Looking for manifest at {:?}" , args. manifest_path) ;
33
+
34
+ // TODO: Variants???
35
+ let variants = BTreeMap :: default ( ) ;
36
+
37
+ // TODO: NoArchType???
38
+ let noarch_type = NoArchType :: None ;
39
+
40
+ // TODO: Setup defaults
41
+ let directories = Directories :: default ( ) ;
42
+
43
+ let output = Output {
44
+ recipe : Recipe {
45
+ schema_version : 1 ,
46
+ package : Package {
47
+ // TODO:
48
+ } ,
49
+ cache : None ,
50
+ source : vec ! [ Source :: Path ( PathSource {
51
+ path: args
52
+ . manifest_path
53
+ . parent( )
54
+ . expect( "the project manifest must reside in a directory" )
55
+ . to_path_buf( ) ,
56
+ sha256: None ,
57
+ md5: None ,
58
+ patches: vec![ ] ,
59
+ target_directory: None ,
60
+ file_name: None ,
61
+ use_gitignore: true ,
62
+ } ) ] ,
63
+ build : Build {
64
+ // TODO:
65
+ } ,
66
+ requirements : Requirements {
67
+
68
+ } ,
69
+ tests : vec ! [ ] ,
70
+ about : Default :: default ( ) ,
71
+ extra : Default :: default ( ) ,
72
+ } ,
73
+ build_configuration : BuildConfiguration {
74
+ // TODO: NoArch??
75
+ target_platform : Platform :: NoArch ,
76
+ host_platform : Platform :: current ( ) ,
77
+ build_platform : Platform :: current ( ) ,
78
+ hash : HashInfo :: from_variant ( & variants, & noarch_type) ,
79
+ variant,
80
+ directories,
81
+ channels : vec ! [ ] , // TODO: read from manifest
82
+ channel_priority : Default :: default ( ) ,
83
+ solve_strategy : Default :: default ( ) ,
84
+ timestamp : chrono:: Utc :: now ( ) ,
85
+ subpackages : Default :: default ( ) , // TODO: ???
86
+ packaging_settings : PackagingSettings :: from_args (
87
+ ArchiveType :: Conda ,
88
+ CompressionLevel :: default ( ) ,
89
+ ) ,
90
+ store_recipe : true ,
91
+ force_colors : true ,
92
+ } ,
93
+ finalized_dependencies : None ,
94
+ finalized_cache_dependencies : None ,
95
+ finalized_sources : None ,
96
+ build_summary : Arc :: default ( ) ,
97
+ system_tools : Default :: default ( ) ,
98
+ } ;
21
99
}
0 commit comments