@@ -13,6 +13,8 @@ let csvToJson = require('convert-csv-to-json');
13
13
let promises = [ ] ;
14
14
const cp_dirs = [ ] ;
15
15
for ( let project_2_cpd of project_2_cpds ) {
16
+
17
+ //replace with an s3 ls | grep?
16
18
let src_dir = "etl/" + project_2_cpd . src_project . toLowerCase ( ) + "/" +
17
19
project_2_cpd . src_project . toUpperCase ( ) + "/" +
18
20
project_2_cpd . pert_plate + "/" ;
@@ -23,7 +25,10 @@ let csvToJson = require('convert-csv-to-json');
23
25
project_2_cpd . pert_plate + "/" ;
24
26
25
27
const cp_dest_dir = dest_dir + project_2_cpd . pert_id ;
26
- cp_dirs . push ( { src : cp_src_dir , dest : cp_dest_dir } ) ;
28
+ cp_dirs . push ( {
29
+ src : cp_src_dir , dest : cp_dest_dir ,
30
+ delete_from_src : project_2_cpd . delete_from_src
31
+ } ) ;
27
32
let command = "aws s3 sync " + input . screen_root +
28
33
project_2_cpd . src_project . toLowerCase ( ) + "/" +
29
34
project_2_cpd . src_project . toUpperCase ( ) + "/" +
@@ -44,8 +49,6 @@ let csvToJson = require('convert-csv-to-json');
44
49
}
45
50
await Promise . all ( promises ) ;
46
51
47
- //delete src directory
48
-
49
52
50
53
const csvColumnFilesGlob = [ ] ;
51
54
for ( let project_2_cpd of project_2_cpds ) {
@@ -68,46 +71,88 @@ let csvToJson = require('convert-csv-to-json');
68
71
let dest_dir = "etl/" + project_2_cpd . dest_project . toLowerCase ( ) + "/" +
69
72
project_2_cpd . dest_project . toUpperCase ( ) + "/" +
70
73
project_2_cpd . pert_plate + "/" + project_2_cpd . pert_id + "/" ;
71
- for ( let rowFile of rowFiles ) {
74
+
75
+ const cpdRowFiles = rowFiles . filter ( ( f ) => f . includes ( project_2_cpd . pert_id ) ) ;
76
+ for ( let rowFile of cpdRowFiles ) {
72
77
const destFile = dest_dir + path . basename ( rowFile ) ;
73
78
promises . push ( SliceData . replaceProjectNames ( project_2_cpd . dest_project , rowFile , destFile , "," ) ) ;
74
79
}
75
80
}
76
81
await Promise . all ( promises ) ;
77
82
83
+ //delete the src directories
78
84
promises = [ ] ;
79
85
for ( let cp_dir of cp_dirs ) {
80
- promises . push ( SliceData . cleanUp ( cp_dir . src ) ) ;
86
+ if ( cp_dir . delete_from_src ) {
87
+ promises . push ( SliceData . cleanUp ( cp_dir . src ) ) ;
88
+ }
81
89
}
82
- await Promise . all ( promises ) ;
90
+ // await Promise.all(promises);
83
91
84
- //sync to s3
85
- for ( let project_2_cpd of project_2_cpds ) {
86
- const local_src_dir = "etl/" + project_2_cpd . src_project . toLowerCase ( ) + "/" +
87
- project_2_cpd . src_project . toUpperCase ( ) + "/" +
88
- project_2_cpd . pert_plate + "/" ;
89
-
90
- const local_dest_dir = "etl/" + project_2_cpd . dest_project . toLowerCase ( ) + "/" +
91
- project_2_cpd . dest_project . toUpperCase ( ) + "/" +
92
- project_2_cpd . pert_plate + "/" ;
93
92
93
+ //go through each destination project and creat a data/ folder
94
+ const destProjects = _ . uniq ( _ . pluck ( project_2_cpds , "dest_project" ) ) ;
95
+ promises = [ ] ;
96
+ for ( const project of destProjects ) {
97
+ console . log ( "project" , project )
98
+ promises . push ( SliceData . makeDataDirectory ( project ) ) ;
99
+ }
100
+ await Promise . all ( promises ) ;
94
101
95
- let command = "aws s3 sync " + local_src_dir + " " +
96
- input . screen_root +
97
- project_2_cpd . src_project . toLowerCase ( ) + "/" +
98
- project_2_cpd . src_project . toUpperCase ( ) + "/" +
99
- project_2_cpd . pert_plate + "/ --delete" ;
102
+ //gzip each file in data folder
103
+ promises = [ ] ;
104
+ for ( const project of destProjects ) {
105
+ const dest_dir = "etl/" + project . toLowerCase ( ) + "/" + project . toUpperCase ( ) + "/" ;
106
+ promises . push ( SliceData . gzipFiles ( dest_dir + "data/" ) ) ;
107
+ }
108
+ await Promise . all ( promises ) ;
109
+ console . log ( "foo" )
110
+
111
+ //
112
+ // promises = [];
113
+ // //sync compounds folders to s3
114
+ // for (let project_2_cpd of project_2_cpds) {
115
+ // const local_src_dir = "etl/" + project_2_cpd.src_project.toLowerCase() + "/" +
116
+ // project_2_cpd.src_project.toUpperCase() + "/" +
117
+ // project_2_cpd.pert_plate + "/";
118
+ //
119
+ // const local_dest_dir = "etl/" + project_2_cpd.dest_project.toLowerCase() + "/" +
120
+ // project_2_cpd.dest_project.toUpperCase() + "/" +
121
+ // project_2_cpd.pert_plate + "/";
122
+ //
123
+ //
124
+ // let command = "aws s3 sync " + local_src_dir + " " +
125
+ // input.screen_root +
126
+ // project_2_cpd.src_project.toLowerCase() + "/" +
127
+ // project_2_cpd.src_project.toUpperCase() + "/" +
128
+ // project_2_cpd.pert_plate + "/ --delete";
129
+ //
130
+ // console.log("sync s3 src command",command)
131
+ // promises.push(SliceConstants.execShellCommand(command));
132
+ //
133
+ // command = "aws s3 sync " + local_dest_dir + " " +
134
+ // input.screen_root +
135
+ // project_2_cpd.dest_project.toLowerCase() + "/" +
136
+ // project_2_cpd.dest_project.toUpperCase() + "/" +
137
+ // project_2_cpd.pert_plate + "/ --delete";
138
+ // console.log("sync s3 dest command",command)
139
+ // promises.push(SliceConstants.execShellCommand(command));
140
+ // }
141
+ // await Promise.all(promises);
100
142
101
- console . log ( "sync s3 src command" , command )
102
- promises . push ( SliceConstants . execShellCommand ( command ) ) ;
143
+ promises = [ ] ;
144
+ for ( let destProject of destProjects ) {
145
+ const local_data_dir = "etl/" + destProject . toLowerCase ( ) + "/" +
146
+ destProject . toUpperCase ( ) + "/data/" ;
103
147
104
- command = "aws s3 sync " + local_dest_dir + " " +
148
+ let command = "aws s3 sync " + local_data_dir + " " +
105
149
input . screen_root +
106
- project_2_cpd . dest_project . toLowerCase ( ) + "/" +
107
- project_2_cpd . dest_project . toUpperCase ( ) + "/" +
108
- project_2_cpd . pert_plate + "/ --delete" ;
109
- console . log ( "sync s3 dest command" , command )
150
+ destProject . toLowerCase ( ) + "/" +
151
+ destProject . toUpperCase ( ) + "/data/" ;
152
+
153
+ console . log ( "sync s3 command" , command )
110
154
promises . push ( SliceConstants . execShellCommand ( command ) ) ;
111
155
}
112
156
await Promise . all ( promises ) ;
157
+
113
158
} ) ( ) ;
0 commit comments