450: def run(indata, dir)
451: UI.event :create, @path
452:
453: begin
454: Dir.chdir dir do
455: ChangeSet.create_target_path(@path)
456:
457: if @symlink
458: UI.event :symlink, "Creating symlink to #@symlink_target"
459:
460: File.symlink(@symlink_target, @path)
461: else
462: UI.event :create, @path
463: data = indata.read(@length)
464:
465: File.open(@path, "wb") {|out| out.write data }
466: end
467:
468: UI.event :mtime, "Fixing mtime for #@path"
469: File.utime(Time.now, @mtime, @path)
470: end
471: rescue
472: UI.failure :create, "Failed to create file: #$!"
473: return false
474: end
475:
476: return true
477: end