@jdeighan/coffee-utils 7.0.18 → 7.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/fs_utils.coffee +56 -28
- package/src/fs_utils.js +60 -31
    
        package/package.json
    CHANGED
    
    
    
        package/src/fs_utils.coffee
    CHANGED
    
    | @@ -14,7 +14,7 @@ import {debug} from '@jdeighan/coffee-utils/debug' | |
| 14 14 | 
             
            import {arrayToBlock} from '@jdeighan/coffee-utils/block'
         | 
| 15 15 |  | 
| 16 16 | 
             
            # ---------------------------------------------------------------------------
         | 
| 17 | 
            -
            #    mydir() - pass argument  | 
| 17 | 
            +
            #    mydir() - pass argument import.meta.url and it will return
         | 
| 18 18 | 
             
            #              the directory your file is in
         | 
| 19 19 |  | 
| 20 20 | 
             
            export mydir = (url) ->
         | 
| @@ -28,6 +28,30 @@ export mydir = (url) -> | |
| 28 28 | 
             
            	debug "final = #{final}"
         | 
| 29 29 | 
             
            	return final
         | 
| 30 30 |  | 
| 31 | 
            +
            # ---------------------------------------------------------------------------
         | 
| 32 | 
            +
            #    myfile() - pass argument import.meta.url and it will return
         | 
| 33 | 
            +
            #               the name of your file
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            export myfile = (url) ->
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            	debug "url = #{url}"
         | 
| 38 | 
            +
            	path = urllib.fileURLToPath(url)
         | 
| 39 | 
            +
            	debug "path = #{path}"
         | 
| 40 | 
            +
            	filename = pathlib.parse(path).base
         | 
| 41 | 
            +
            	debug "filename = #{filename}"
         | 
| 42 | 
            +
            	return filename
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            # ---------------------------------------------------------------------------
         | 
| 45 | 
            +
            #    myfullpath() - pass argument import.meta.url and it will return
         | 
| 46 | 
            +
            #                   the full path to your file
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            export myfullpath = (url) ->
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            	debug "url = #{url}"
         | 
| 51 | 
            +
            	path = urllib.fileURLToPath(url)
         | 
| 52 | 
            +
            	debug "path = #{path}"
         | 
| 53 | 
            +
            	return mkpath(path)
         | 
| 54 | 
            +
             | 
| 31 55 | 
             
            # ---------------------------------------------------------------------------
         | 
| 32 56 |  | 
| 33 57 | 
             
            export isFile = (fullpath) ->
         | 
| @@ -80,26 +104,6 @@ export getFullPath = (filepath) -> | |
| 80 104 |  | 
| 81 105 | 
             
            	return mkpath(pathlib.resolve(filepath))
         | 
| 82 106 |  | 
| 83 | 
            -
            # ---------------------------------------------------------------------------
         | 
| 84 | 
            -
            #   backup - back up a file
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            # --- If report is true, missing source files are not an error
         | 
| 87 | 
            -
            #     but both missing source files and successful copies
         | 
| 88 | 
            -
            #     are reported via LOG
         | 
| 89 | 
            -
             | 
| 90 | 
            -
            export backup = (file, from, to, report=false) ->
         | 
| 91 | 
            -
            	src = mkpath(from, file)
         | 
| 92 | 
            -
            	dest = mkpath(to, file)
         | 
| 93 | 
            -
             | 
| 94 | 
            -
            	if report
         | 
| 95 | 
            -
            		if fs.existsSync(src)
         | 
| 96 | 
            -
            			LOG "OK #{file}"
         | 
| 97 | 
            -
            			fs.copyFileSync(src, dest)
         | 
| 98 | 
            -
            		else
         | 
| 99 | 
            -
            			LOG "MISSING #{src}"
         | 
| 100 | 
            -
            	else
         | 
| 101 | 
            -
            		fs.copyFileSync(src, dest)
         | 
| 102 | 
            -
             | 
| 103 107 | 
             
            # ---------------------------------------------------------------------------
         | 
| 104 108 |  | 
| 105 109 | 
             
            export forEachLineInFile = (filepath, func) ->
         | 
| @@ -249,25 +253,27 @@ export forEachFile = (dir, cb, filt=undef, level=0) -> | |
| 249 253 |  | 
| 250 254 | 
             
            # ---------------------------------------------------------------------------
         | 
| 251 255 |  | 
| 252 | 
            -
            export pathTo = (fname,  | 
| 256 | 
            +
            export pathTo = (fname, searchDir, direction="down") ->
         | 
| 253 257 |  | 
| 254 | 
            -
            	debug "enter pathTo('#{fname}','#{ | 
| 255 | 
            -
            	 | 
| 256 | 
            -
             | 
| 258 | 
            +
            	debug "enter pathTo('#{fname}','#{searchDir}','#{direction}')"
         | 
| 259 | 
            +
            	if ! searchDir
         | 
| 260 | 
            +
            		searchDir = process.cwd()
         | 
| 261 | 
            +
            	assert fs.existsSync(searchDir), "Directory #{searchDir} does not exist"
         | 
| 262 | 
            +
            	filepath = mkpath(searchDir, fname)
         | 
| 257 263 | 
             
            	if fs.existsSync(filepath)
         | 
| 258 264 | 
             
            		debug "return from pathTo: #{filepath} - file exists"
         | 
| 259 265 | 
             
            		return filepath
         | 
| 260 266 | 
             
            	else if (direction == 'down')
         | 
| 261 267 | 
             
            		# --- Search all directories in this directory
         | 
| 262 268 | 
             
            		#     getSubDirs() returns dirs sorted alphabetically
         | 
| 263 | 
            -
            		for subdir in getSubDirs( | 
| 264 | 
            -
            			dirpath = mkpath( | 
| 269 | 
            +
            		for subdir in getSubDirs(searchDir)
         | 
| 270 | 
            +
            			dirpath = mkpath(searchDir, subdir)
         | 
| 265 271 | 
             
            			debug "check #{dirpath}"
         | 
| 266 272 | 
             
            			if fpath = pathTo(fname, dirpath)
         | 
| 267 273 | 
             
            				debug "return from pathTo: #{fpath}"
         | 
| 268 274 | 
             
            				return fpath
         | 
| 269 275 | 
             
            	else if (direction == 'up')
         | 
| 270 | 
            -
            		while dirpath = getParentDir( | 
| 276 | 
            +
            		while dirpath = getParentDir(searchDir)
         | 
| 271 277 | 
             
            			debug "check #{dirpath}"
         | 
| 272 278 | 
             
            			filepath = mkpath(dirpath, fname)
         | 
| 273 279 | 
             
            			if fs.existsSync(filepath)
         | 
| @@ -283,6 +289,8 @@ export pathTo = (fname, dir, direction="down") -> | |
| 283 289 | 
             
            export allPathsTo = (fname, searchDir) ->
         | 
| 284 290 | 
             
            	# --- Only searches upward
         | 
| 285 291 |  | 
| 292 | 
            +
            	if ! searchDir
         | 
| 293 | 
            +
            		searchDir = process.cwd()
         | 
| 286 294 | 
             
            	path = pathTo(fname, searchDir, "up")
         | 
| 287 295 | 
             
            	if path?
         | 
| 288 296 | 
             
            		lPaths = [path]    # --- build an array of paths
         | 
| @@ -374,3 +382,23 @@ export parseSource = (source) -> | |
| 374 382 | 
             
            			}
         | 
| 375 383 | 
             
            		debug "return '#{err.message} from parseSource()", hSourceInfo
         | 
| 376 384 | 
             
            		return hSourceInfo
         | 
| 385 | 
            +
             | 
| 386 | 
            +
            # ---------------------------------------------------------------------------
         | 
| 387 | 
            +
            #   backup - back up a file
         | 
| 388 | 
            +
             | 
| 389 | 
            +
            # --- If report is true, missing source files are not an error
         | 
| 390 | 
            +
            #     but both missing source files and successful copies
         | 
| 391 | 
            +
            #     are reported via LOG
         | 
| 392 | 
            +
             | 
| 393 | 
            +
            export backup = (file, from, to, report=false) ->
         | 
| 394 | 
            +
            	src = mkpath(from, file)
         | 
| 395 | 
            +
            	dest = mkpath(to, file)
         | 
| 396 | 
            +
             | 
| 397 | 
            +
            	if report
         | 
| 398 | 
            +
            		if fs.existsSync(src)
         | 
| 399 | 
            +
            			LOG "OK #{file}"
         | 
| 400 | 
            +
            			fs.copyFileSync(src, dest)
         | 
| 401 | 
            +
            		else
         | 
| 402 | 
            +
            			LOG "MISSING #{src}"
         | 
| 403 | 
            +
            	else
         | 
| 404 | 
            +
            		fs.copyFileSync(src, dest)
         | 
    
        package/src/fs_utils.js
    CHANGED
    
    | @@ -39,7 +39,7 @@ import { | |
| 39 39 | 
             
            } from '@jdeighan/coffee-utils/block';
         | 
| 40 40 |  | 
| 41 41 | 
             
            // ---------------------------------------------------------------------------
         | 
| 42 | 
            -
            //    mydir() - pass argument  | 
| 42 | 
            +
            //    mydir() - pass argument import.meta.url and it will return
         | 
| 43 43 | 
             
            //              the directory your file is in
         | 
| 44 44 | 
             
            export var mydir = function(url) {
         | 
| 45 45 | 
             
              var dir, final, path;
         | 
| @@ -53,6 +53,30 @@ export var mydir = function(url) { | |
| 53 53 | 
             
              return final;
         | 
| 54 54 | 
             
            };
         | 
| 55 55 |  | 
| 56 | 
            +
            // ---------------------------------------------------------------------------
         | 
| 57 | 
            +
            //    myfile() - pass argument import.meta.url and it will return
         | 
| 58 | 
            +
            //               the name of your file
         | 
| 59 | 
            +
            export var myfile = function(url) {
         | 
| 60 | 
            +
              var filename, path;
         | 
| 61 | 
            +
              debug(`url = ${url}`);
         | 
| 62 | 
            +
              path = urllib.fileURLToPath(url);
         | 
| 63 | 
            +
              debug(`path = ${path}`);
         | 
| 64 | 
            +
              filename = pathlib.parse(path).base;
         | 
| 65 | 
            +
              debug(`filename = ${filename}`);
         | 
| 66 | 
            +
              return filename;
         | 
| 67 | 
            +
            };
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            // ---------------------------------------------------------------------------
         | 
| 70 | 
            +
            //    myfullpath() - pass argument import.meta.url and it will return
         | 
| 71 | 
            +
            //                   the full path to your file
         | 
| 72 | 
            +
            export var myfullpath = function(url) {
         | 
| 73 | 
            +
              var path;
         | 
| 74 | 
            +
              debug(`url = ${url}`);
         | 
| 75 | 
            +
              path = urllib.fileURLToPath(url);
         | 
| 76 | 
            +
              debug(`path = ${path}`);
         | 
| 77 | 
            +
              return mkpath(path);
         | 
| 78 | 
            +
            };
         | 
| 79 | 
            +
             | 
| 56 80 | 
             
            // ---------------------------------------------------------------------------
         | 
| 57 81 | 
             
            export var isFile = function(fullpath) {
         | 
| 58 82 | 
             
              return fs.lstatSync(fullpath).isFile();
         | 
| @@ -106,28 +130,6 @@ export var getFullPath = function(filepath) { | |
| 106 130 | 
             
              return mkpath(pathlib.resolve(filepath));
         | 
| 107 131 | 
             
            };
         | 
| 108 132 |  | 
| 109 | 
            -
            // ---------------------------------------------------------------------------
         | 
| 110 | 
            -
            //   backup - back up a file
         | 
| 111 | 
            -
             | 
| 112 | 
            -
            // --- If report is true, missing source files are not an error
         | 
| 113 | 
            -
            //     but both missing source files and successful copies
         | 
| 114 | 
            -
            //     are reported via LOG
         | 
| 115 | 
            -
            export var backup = function(file, from, to, report = false) {
         | 
| 116 | 
            -
              var dest, src;
         | 
| 117 | 
            -
              src = mkpath(from, file);
         | 
| 118 | 
            -
              dest = mkpath(to, file);
         | 
| 119 | 
            -
              if (report) {
         | 
| 120 | 
            -
                if (fs.existsSync(src)) {
         | 
| 121 | 
            -
                  LOG(`OK ${file}`);
         | 
| 122 | 
            -
                  return fs.copyFileSync(src, dest);
         | 
| 123 | 
            -
                } else {
         | 
| 124 | 
            -
                  return LOG(`MISSING ${src}`);
         | 
| 125 | 
            -
                }
         | 
| 126 | 
            -
              } else {
         | 
| 127 | 
            -
                return fs.copyFileSync(src, dest);
         | 
| 128 | 
            -
              }
         | 
| 129 | 
            -
            };
         | 
| 130 | 
            -
             | 
| 131 133 | 
             
            // ---------------------------------------------------------------------------
         | 
| 132 134 | 
             
            export var forEachLineInFile = function(filepath, func) {
         | 
| 133 135 | 
             
              var buffer, line, nLines, reader;
         | 
| @@ -302,21 +304,24 @@ export var forEachFile = function(dir, cb, filt = undef, level = 0) { | |
| 302 304 | 
             
            };
         | 
| 303 305 |  | 
| 304 306 | 
             
            // ---------------------------------------------------------------------------
         | 
| 305 | 
            -
            export var pathTo = function(fname,  | 
| 307 | 
            +
            export var pathTo = function(fname, searchDir, direction = "down") {
         | 
| 306 308 | 
             
              var dirpath, filepath, fpath, i, len, ref, subdir;
         | 
| 307 | 
            -
              debug(`enter pathTo('${fname}','${ | 
| 308 | 
            -
               | 
| 309 | 
            -
             | 
| 309 | 
            +
              debug(`enter pathTo('${fname}','${searchDir}','${direction}')`);
         | 
| 310 | 
            +
              if (!searchDir) {
         | 
| 311 | 
            +
                searchDir = process.cwd();
         | 
| 312 | 
            +
              }
         | 
| 313 | 
            +
              assert(fs.existsSync(searchDir), `Directory ${searchDir} does not exist`);
         | 
| 314 | 
            +
              filepath = mkpath(searchDir, fname);
         | 
| 310 315 | 
             
              if (fs.existsSync(filepath)) {
         | 
| 311 316 | 
             
                debug(`return from pathTo: ${filepath} - file exists`);
         | 
| 312 317 | 
             
                return filepath;
         | 
| 313 318 | 
             
              } else if (direction === 'down') {
         | 
| 314 | 
            -
                ref = getSubDirs( | 
| 319 | 
            +
                ref = getSubDirs(searchDir);
         | 
| 315 320 | 
             
                // --- Search all directories in this directory
         | 
| 316 321 | 
             
                //     getSubDirs() returns dirs sorted alphabetically
         | 
| 317 322 | 
             
                for (i = 0, len = ref.length; i < len; i++) {
         | 
| 318 323 | 
             
                  subdir = ref[i];
         | 
| 319 | 
            -
                  dirpath = mkpath( | 
| 324 | 
            +
                  dirpath = mkpath(searchDir, subdir);
         | 
| 320 325 | 
             
                  debug(`check ${dirpath}`);
         | 
| 321 326 | 
             
                  if (fpath = pathTo(fname, dirpath)) {
         | 
| 322 327 | 
             
                    debug(`return from pathTo: ${fpath}`);
         | 
| @@ -324,7 +329,7 @@ export var pathTo = function(fname, dir, direction = "down") { | |
| 324 329 | 
             
                  }
         | 
| 325 330 | 
             
                }
         | 
| 326 331 | 
             
              } else if (direction === 'up') {
         | 
| 327 | 
            -
                while (dirpath = getParentDir( | 
| 332 | 
            +
                while (dirpath = getParentDir(searchDir)) {
         | 
| 328 333 | 
             
                  debug(`check ${dirpath}`);
         | 
| 329 334 | 
             
                  filepath = mkpath(dirpath, fname);
         | 
| 330 335 | 
             
                  if (fs.existsSync(filepath)) {
         | 
| @@ -342,7 +347,9 @@ export var pathTo = function(fname, dir, direction = "down") { | |
| 342 347 | 
             
            // ---------------------------------------------------------------------------
         | 
| 343 348 | 
             
            export var allPathsTo = function(fname, searchDir) {
         | 
| 344 349 | 
             
              var h, lPaths, path;
         | 
| 345 | 
            -
               | 
| 350 | 
            +
              if (!searchDir) {
         | 
| 351 | 
            +
                searchDir = process.cwd();
         | 
| 352 | 
            +
              }
         | 
| 346 353 | 
             
              path = pathTo(fname, searchDir, "up");
         | 
| 347 354 | 
             
              if (path != null) {
         | 
| 348 355 | 
             
                lPaths = [path]; // --- build an array of paths
         | 
| @@ -441,3 +448,25 @@ export var parseSource = function(source) { | |
| 441 448 | 
             
                return hSourceInfo;
         | 
| 442 449 | 
             
              }
         | 
| 443 450 | 
             
            };
         | 
| 451 | 
            +
             | 
| 452 | 
            +
            // ---------------------------------------------------------------------------
         | 
| 453 | 
            +
            //   backup - back up a file
         | 
| 454 | 
            +
             | 
| 455 | 
            +
            // --- If report is true, missing source files are not an error
         | 
| 456 | 
            +
            //     but both missing source files and successful copies
         | 
| 457 | 
            +
            //     are reported via LOG
         | 
| 458 | 
            +
            export var backup = function(file, from, to, report = false) {
         | 
| 459 | 
            +
              var dest, src;
         | 
| 460 | 
            +
              src = mkpath(from, file);
         | 
| 461 | 
            +
              dest = mkpath(to, file);
         | 
| 462 | 
            +
              if (report) {
         | 
| 463 | 
            +
                if (fs.existsSync(src)) {
         | 
| 464 | 
            +
                  LOG(`OK ${file}`);
         | 
| 465 | 
            +
                  return fs.copyFileSync(src, dest);
         | 
| 466 | 
            +
                } else {
         | 
| 467 | 
            +
                  return LOG(`MISSING ${src}`);
         | 
| 468 | 
            +
                }
         | 
| 469 | 
            +
              } else {
         | 
| 470 | 
            +
                return fs.copyFileSync(src, dest);
         | 
| 471 | 
            +
              }
         | 
| 472 | 
            +
            };
         |