Skip to content

Commit 70833e9

Browse files
committed
cargo-rpm: Hax for stable
We need to hack around this issue which should be on stable soon: rust-lang/rust#44431
1 parent 7cfa803 commit 70833e9

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

cargo-rpm/src/init.rs

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ pub struct InitOpts {
3030

3131
/// Path to the systemd service unit config template
3232
#[options(no_short, long = "service")]
33-
pub service: Option<PathBuf>,
33+
pub service: Option<String>,
3434

3535
/// Configure this RPM as a systemd service unit
3636
#[options(short = "s", long = "systemd")]
3737
pub systemd: bool,
3838

3939
/// Path to the RPM spec template
4040
#[options(long = "template")]
41-
pub template: Option<PathBuf>,
41+
pub template: Option<String>,
4242
}
4343

4444
impl InitOpts {
@@ -149,13 +149,15 @@ impl InitOpts {
149149
/// Render this package's RPM spec
150150
fn render_spec(
151151
spec_path: &Path,
152-
template: &Option<PathBuf>,
152+
template_path_str: &Option<String>,
153153
package_config: &PackageConfig,
154154
service_name: &Option<String>,
155155
) -> Result<(), Error> {
156156
let mut spec_params = SpecParams::from(package_config);
157157
spec_params.service = service_name.clone();
158-
let spec_rendered = spec_params.render(template.as_ref().map(|p| p.as_ref()))?;
158+
159+
let template_path = template_path_str.as_ref().map(|t| PathBuf::from(t));
160+
let spec_rendered = spec_params.render(template_path.as_ref().map(|t| t.as_ref()))?;
159161

160162
let mut spec_file = File::create(spec_path)?;
161163
spec_file.write_all(spec_rendered.as_bytes())?;
@@ -173,11 +175,12 @@ fn render_spec(
173175
/// Render this package's systemd service unit config (if enabled)
174176
fn render_service(
175177
service_path: &Path,
176-
template: &Option<PathBuf>,
178+
template_path_str: &Option<String>,
177179
package_config: &PackageConfig,
178180
) -> Result<(), Error> {
179181
let service_params = ServiceParams::from(package_config);
180-
let service_rendered = service_params.render(template.as_ref().map(|p| p.as_ref()))?;
182+
let template_path = template_path_str.as_ref().map(|t| PathBuf::from(t));
183+
let service_rendered = service_params.render(template_path.as_ref().map(|t| t.as_ref()))?;
181184

182185
let mut service_file = File::create(service_path)?;
183186
service_file.write_all(service_rendered.as_bytes())?;

0 commit comments

Comments
 (0)