| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- /*
 
-  * Copyright 2014 Mozilla Foundation
 
-  *
 
-  * Licensed under the Apache License, Version 2.0 (the "License");
 
-  * you may not use this file except in compliance with the License.
 
-  * You may obtain a copy of the License at
 
-  *
 
-  *     http://www.apache.org/licenses/LICENSE-2.0
 
-  *
 
-  * Unless required by applicable law or agreed to in writing, software
 
-  * distributed under the License is distributed on an "AS IS" BASIS,
 
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-  * See the License for the specific language governing permissions and
 
-  * limitations under the License.
 
-  */
 
- "use strict";
 
- const fs = require("fs");
 
- const path = require("path");
 
- const rimrafSync = require("rimraf").sync;
 
- exports.removeDirSync = function removeDirSync(dir) {
 
-   fs.readdirSync(dir); // Will throw if dir is not a directory
 
-   rimrafSync(dir, {
 
-     disableGlob: true,
 
-   });
 
- };
 
- exports.copySubtreeSync = function copySubtreeSync(src, dest) {
 
-   const files = fs.readdirSync(src);
 
-   if (!fs.existsSync(dest)) {
 
-     fs.mkdirSync(dest);
 
-   }
 
-   files.forEach(function (filename) {
 
-     const srcFile = path.join(src, filename);
 
-     const file = path.join(dest, filename);
 
-     const stats = fs.statSync(srcFile);
 
-     if (stats.isDirectory()) {
 
-       copySubtreeSync(srcFile, file);
 
-     } else {
 
-       fs.writeFileSync(file, fs.readFileSync(srcFile));
 
-     }
 
-   });
 
- };
 
- exports.ensureDirSync = function ensureDirSync(dir) {
 
-   if (fs.existsSync(dir)) {
 
-     return;
 
-   }
 
-   const parts = dir.split(path.sep);
 
-   let i = parts.length;
 
-   while (i > 1 && !fs.existsSync(parts.slice(0, i - 1).join(path.sep))) {
 
-     i--;
 
-   }
 
-   if (i < 0 || (i === 0 && parts[0])) {
 
-     throw new Error();
 
-   }
 
-   while (i <= parts.length) {
 
-     fs.mkdirSync(parts.slice(0, i).join(path.sep));
 
-     i++;
 
-   }
 
- };
 
 
  |