@@ -44,6 +44,14 @@ struct Flake8 {}
44
44
#[ template( path = ".cpa/prettier.json" , escape = "none" ) ]
45
45
struct Prettier { }
46
46
47
+ #[ derive( Template ) ]
48
+ #[ template( path = ".github/workflows/ci.yaml" , escape = "none" ) ]
49
+ struct GHWorkflowCI { }
50
+
51
+ // #[derive(Template)]
52
+ // #[template(path = ".github/workflows/ci.yaml", escape = "none")]
53
+ // struct GHWorkflowCI {}
54
+
47
55
pub fn setup_preset ( mut preset : String , name : String , create : bool ) {
48
56
if preset == "python" {
49
57
preset = "python3.10" . to_string ( ) ;
@@ -54,40 +62,26 @@ pub fn setup_preset(mut preset: String, name: String, create: bool) {
54
62
}
55
63
56
64
let _ = fs:: create_dir_all ( format ! ( "{}/.cpa" , prefix) ) ;
65
+
66
+ // Render Github Actions CI
67
+ let _ = fs:: create_dir_all ( format ! ( "{}/.github/workflows" , prefix) ) ;
68
+ File :: create ( format ! ( "{}/.github/workflows/ci.yaml" , prefix) )
69
+ . and_then ( |mut file| file. write_all ( GHWorkflowCI { } . render ( ) . expect ( "Failed to render ci.yaml" ) . as_bytes ( ) ) )
70
+ . expect ( "Failed to create or write to ci.yaml" ) ;
71
+
57
72
// Render .gitignore
58
73
File :: create ( format ! ( "{}/.gitignore" , prefix) )
59
- . and_then ( |mut file| {
60
- file. write_all (
61
- GitIgnore { }
62
- . render ( )
63
- . expect ( "Failed to render .gitignore" )
64
- . as_bytes ( ) ,
65
- )
66
- } )
74
+ . and_then ( |mut file| file. write_all ( GitIgnore { } . render ( ) . expect ( "Failed to render .gitignore" ) . as_bytes ( ) ) )
67
75
. expect ( "Failed to create or write to .gitignore" ) ;
68
76
69
77
// Render Makefile
70
78
File :: create ( format ! ( "{}/Makefile" , prefix) )
71
- . and_then ( |mut file| {
72
- file. write_all (
73
- Makefile { }
74
- . render ( )
75
- . expect ( "Failed to render Makefile" )
76
- . as_bytes ( ) ,
77
- )
78
- } )
79
+ . and_then ( |mut file| file. write_all ( Makefile { } . render ( ) . expect ( "Failed to render Makefile" ) . as_bytes ( ) ) )
79
80
. expect ( "Failed to create or write to Makefile" ) ;
80
81
81
82
// Render Dockerfile
82
83
File :: create ( format ! ( "{}/Dockerfile" , prefix) )
83
- . and_then ( |mut file| {
84
- file. write_all (
85
- Dockerfile { }
86
- . render ( )
87
- . expect ( "Failed to render Dockerfile" )
88
- . as_bytes ( ) ,
89
- )
90
- } )
84
+ . and_then ( |mut file| file. write_all ( Dockerfile { } . render ( ) . expect ( "Failed to render Dockerfile" ) . as_bytes ( ) ) )
91
85
. expect ( "Failed to create or write to Dockerfile" ) ;
92
86
93
87
// Render main.py
@@ -101,34 +95,20 @@ pub fn setup_preset(mut preset: String, name: String, create: bool) {
101
95
file. write_all (
102
96
PreCommitConfig { python : true }
103
97
. render ( )
104
- . expect ( "Failed to render .pre-commit-config.yaml " )
98
+ . expect ( "Failed to render .pre-commit-config.yam " )
105
99
. as_bytes ( ) ,
106
100
)
107
101
} )
108
102
. expect ( "Failed to create or write to .pre-commit-config.yaml" ) ;
109
103
110
104
// Render Flake8 conf
111
105
File :: create ( format ! ( "{}/.cpa/flake8.cfg" , prefix) )
112
- . and_then ( |mut file| {
113
- file. write_all (
114
- Flake8 { }
115
- . render ( )
116
- . expect ( "Failed to render flake8.cfg" )
117
- . as_bytes ( ) ,
118
- )
119
- } )
106
+ . and_then ( |mut file| file. write_all ( Flake8 { } . render ( ) . expect ( "Failed to render flake8.cfg" ) . as_bytes ( ) ) )
120
107
. expect ( "Failed to create or write to flake8.cfg" ) ;
121
108
122
109
// Render Prettier conf
123
110
File :: create ( format ! ( "{}/.cpa/prettier.json" , prefix) )
124
- . and_then ( |mut file| {
125
- file. write_all (
126
- Prettier { }
127
- . render ( )
128
- . expect ( "Failed to render prettier.json" )
129
- . as_bytes ( ) ,
130
- )
131
- } )
111
+ . and_then ( |mut file| file. write_all ( Prettier { } . render ( ) . expect ( "Failed to render prettier.json" ) . as_bytes ( ) ) )
132
112
. expect ( "Failed to create or write to prettier.json" ) ;
133
113
134
114
// Render Poetry conf
@@ -147,8 +127,7 @@ pub fn setup_preset(mut preset: String, name: String, create: bool) {
147
127
black_target_ver,
148
128
} ;
149
129
let out_pyproj: String = pyproj. render ( ) . expect ( "Failed to render" ) ;
150
- let mut f_pyproj =
151
- File :: create ( format ! ( "{}/pyproject.toml" , prefix) ) . expect ( "Could not create file" ) ;
130
+ let mut f_pyproj = File :: create ( format ! ( "{}/pyproject.toml" , prefix) ) . expect ( "Could not create file" ) ;
152
131
f_pyproj
153
132
. write_all ( out_pyproj. as_bytes ( ) )
154
133
. expect ( "Could not write to file" ) ;
0 commit comments