-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathGS_ExtractFiles.gs
More file actions
84 lines (69 loc) · 2.04 KB
/
Copy pathGS_ExtractFiles.gs
File metadata and controls
84 lines (69 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
function extractTheFiles(srcFileID,fldr,prjktData,typeOfFiles) {
try{
var allFiles,exportHTMLs,exportGS,fileData,i,L,name,oldFiles,trgtFldr,
theAccessTkn,thisFileObj,thisOldFile;
if (!srcFileID) {
return 'noID';
}
if (typeOfFiles === 'html') {
exportHTMLs = true;
}
if (typeOfFiles === 'server_js' || typeOfFiles === 'both') {
exportGS = true;
}
Logger.log('exportHTMLs: ' + exportHTMLs);
theAccessTkn = ScriptApp.getOAuthToken();
//Logger.log('srcFileID: ' + srcFileID);
//Logger.log('fldr: ' + fldr);
if (!prjktData) {
prjktData = getFileData(srcFileID, theAccessTkn);
//Logger.log('prjktData:' + prjktData);
}
allFiles = prjktData.files;
L = allFiles.length;
//Logger.log('L : ' + L)
if (fldr) {
trgtFldr = DriveApp.getFolderById(fldr);
if (!trgtFldr) {return 'noFldr';}
oldFiles = trgtFldr.getFiles();
}
if (oldFiles) {
while (oldFiles.hasNext()) {
thisOldFile = oldFiles.next();
thisOldFile.setTrashed(true);
}
}
for (i=0;i<L;i++) {
thisFileObj = allFiles[i];
fileData = thisFileObj.source;
name = thisFileObj.name;
//Logger.log('name: ' + name)
//Logger.log('thisFileObj.type: ' + thisFileObj.type)
if (thisFileObj.type === 'html' && exportHTMLs) {
//Logger.log('it is html')
if (trgtFldr) {
trgtFldr.createFile(name, fileData, MimeType.HTML);
} else {
DriveApp.createFile(name, fileData, MimeType.HTML);
}
} else if (thisFileObj.type === 'server_js' && exportGS) {
//Logger.log('it is html')
if (trgtFldr) {
trgtFldr.createFile(name, fileData, MimeType.HTML);
} else {
DriveApp.createFile(name, fileData, MimeType.HTML);
}
} else {
if (trgtFldr) {
trgtFldr.createFile(name, fileData, MimeType.JAVASCRIPT);
} else {
DriveApp.createFile(name, fileData, MimeType.JAVASCRIPT);
}
}
}
return true;
}catch(e) {
Logger.log('err: ' + e.message + ' stack ' + e.stack)
return false;
}
}