@@ -38,13 +38,11 @@ fn main() {
38
38
const ONE_HOUR : u64 = 60 * 60 ;
39
39
40
40
let tag = get_image_tag ( Some ( ONE_HOUR ) ) . expect ( "Issue getting the image tag" ) ;
41
-
42
41
info ! ( "Using {}:{}" , image, tag) ;
43
42
44
- let command = match opts. subcmd {
43
+ match opts. subcmd {
45
44
SubCommand :: Pull ( _) => {
46
- println ! ( "Found {tag}, we will be using {image}:{tag} for the build" , tag = tag, image = image) ;
47
- format ! ( "docker pull {image}:{tag}" , image = image, tag = tag, )
45
+ Runner :: pull ( & image, & tag) ;
48
46
}
49
47
50
48
SubCommand :: Build ( build_opts) => {
@@ -57,12 +55,18 @@ fn main() {
57
55
let runtime_dir = build_opts. runtime_dir . unwrap_or_else ( || PathBuf :: from ( & default_runtime_dir) ) ;
58
56
let tmpdir = env:: temp_dir ( ) . join ( "cargo" ) ;
59
57
let digest = get_image_digest ( & image, & tag) . unwrap_or_default ( ) ;
60
- let cache_mount = if !build_opts. no_cache {
58
+ let package = build_opts. package ;
59
+ let profile = build_opts. profile ;
60
+ let workdir = fs:: canonicalize ( & build_opts. path ) . unwrap ( ) ;
61
+ let _cache_mount = if !build_opts. no_cache {
61
62
format ! ( "-v {tmpdir}:/cargo-home" , tmpdir = tmpdir. display( ) )
62
63
} else {
63
64
String :: new ( )
64
65
} ;
65
66
67
+ let search_info = RuntimeCrateSearchInfo { workdir : workdir. to_owned ( ) , options : None } ;
68
+ let _rtm_crate = RuntimeCrate :: search ( & search_info) ;
69
+
66
70
debug ! ( "app: '{}'" , & app) ;
67
71
debug ! ( "json: '{}'" , & json) ;
68
72
debug ! ( "chain: '{}'" , & chain) ;
@@ -72,58 +76,48 @@ fn main() {
72
76
debug ! ( "digest: '{}'" , & digest) ;
73
77
debug ! ( "no-cache: '{}'" , build_opts. no_cache) ;
74
78
75
- let path = fs:: canonicalize ( & build_opts. path ) . unwrap ( ) ;
76
-
77
- format ! (
78
- "docker run --name srtool --rm \
79
- -e PACKAGE={package} \
80
- -e RUNTIME_DIR={runtime_dir} \
81
- -e BUILD_OPTS={c_build_opts} \
82
- -e DEFAULT_FEATURES={default_features} \
83
- -e PROFILE={profile} \
84
- -e IMAGE={digest} \
85
- -v {dir}:/build \
86
- {cache_mount} \
87
- {image}:{tag} build{app}{json}",
88
- package = build_opts. package,
89
- dir = path. display( ) ,
90
- cache_mount = cache_mount,
91
- image = image,
92
- tag = tag,
93
- runtime_dir = runtime_dir. display( ) ,
94
- c_build_opts = build_opts. build_opts. unwrap_or_else( || String :: from( "" ) ) ,
95
- default_features = build_opts. default_features. unwrap_or_else( || String :: from( "" ) ) ,
96
- profile = build_opts. profile,
97
- json = json,
98
- app = app,
99
- digest = digest,
100
- )
79
+ let specs = RunSpecs :: new ( & package, & runtime_dir, & profile, & image, & tag) ;
80
+ let opts = srtool_lib:: BuildOpts { json : json == "json" , app : app == "app" , workdir } ;
81
+ Runner :: build ( & specs, & opts) ;
82
+
83
+ // format!(
84
+ // "docker run --name srtool --rm \
85
+ // -e PACKAGE={package} \
86
+ // -e RUNTIME_DIR={runtime_dir} \
87
+ // -e BUILD_OPTS={c_build_opts} \
88
+ // -e DEFAULT_FEATURES={default_features} \
89
+ // -e PROFILE={profile} \
90
+ // -e IMAGE={digest} \
91
+ // -v {dir}:/build \
92
+ // {cache_mount} \
93
+ // {image}:{tag} build{app}{json}",
94
+ // package = build_opts.package,
95
+ // dir = path.display(),
96
+ // cache_mount = cache_mount,
97
+ // image = image,
98
+ // tag = tag,
99
+ // runtime_dir = runtime_dir.display(),
100
+ // c_build_opts = build_opts.build_opts.unwrap_or_else(|| String::from("")),
101
+ // default_features = build_opts.default_features.unwrap_or_else(|| String::from("")),
102
+ // profile = build_opts.profile,
103
+ // json = json,
104
+ // app = app,
105
+ // digest = digest,
106
+ // )
101
107
}
102
108
103
109
SubCommand :: Info ( info_opts) => {
104
- let path = fs:: canonicalize ( & info_opts. path ) . unwrap ( ) ;
110
+ // let path = fs::canonicalize(&info_opts.path).unwrap();
105
111
let chain = info_opts. package . replace ( "-runtime" , "" ) ;
106
112
let default_runtime_dir = format ! ( "runtime/{}" , chain) ;
107
113
let runtime_dir = info_opts. runtime_dir . unwrap_or_else ( || PathBuf :: from ( & default_runtime_dir) ) ;
108
114
109
- debug ! ( "chain: '{}'" , & chain) ;
110
- debug ! ( "default_runtime_dir: '{}'" , & default_runtime_dir) ;
111
- debug ! ( "runtime_dir: '{}'" , & runtime_dir. display( ) ) ;
112
-
113
- format ! (
114
- "docker run --name srtool --rm \
115
- -v {dir}:/build \
116
- -e RUNTIME_DIR={runtime_dir} \
117
- {image}:{tag} info",
118
- dir = path. display( ) ,
119
- runtime_dir = runtime_dir. display( ) ,
120
- image = image,
121
- tag = tag,
122
- )
115
+ let specs = RunSpecs :: new ( "" , & runtime_dir, "release" , & image, & tag) ;
116
+ Runner :: info ( & specs, & runtime_dir) ;
123
117
}
124
118
125
119
SubCommand :: Version ( _) => {
126
- format ! ( "docker run --name srtool --rm {image}:{tag} version" , image = image , tag = tag , )
120
+ Runner :: version ( & image, & tag) ;
127
121
}
128
122
129
123
SubCommand :: Verify ( verify_opts) => {
@@ -132,22 +126,16 @@ fn main() {
132
126
let reader = BufReader :: new ( file) ;
133
127
let content: V2 = serde_json:: from_reader ( reader) . unwrap ( ) ;
134
128
let digest_json = json ! ( { "V2" : content } ) ;
135
- // let digest = Digest::from
136
- // debug!("digest = {:#?}", digest);
137
- // let specs = digest.get_run_specs();
138
- // debug!("specs = {:#?}", specs);
129
+ let digest = DigestJson :: load ( json ! ( digest_json) ) . unwrap ( ) ;
130
+ debug ! ( "digest = {:#?}" , digest) ;
131
+ let specs = digest. get_run_specs ( ) . unwrap ( ) ;
132
+ debug ! ( "specs = {:#?}" , specs) ;
133
+ let build_opts = srtool_lib:: BuildOpts { json : true , app : true , workdir : "/projects/polkadot" . into ( ) } ;
134
+
135
+ Runner :: build ( & specs, & build_opts) ;
139
136
todo ! ( )
140
137
}
141
138
} ;
142
-
143
- debug ! ( "command = {:?}" , command) ;
144
-
145
- if cfg ! ( target_os = "windows" ) {
146
- Command :: new ( "cmd" ) . args ( & [ "/C" , command. as_str ( ) ] ) . output ( ) . expect ( "failed to execute process" ) ;
147
- } else {
148
- let _ =
149
- Command :: new ( "sh" ) . arg ( "-c" ) . arg ( command) . spawn ( ) . expect ( "failed to execute process" ) . wait_with_output ( ) ;
150
- }
151
139
}
152
140
153
141
#[ cfg( test) ]
0 commit comments