Sha256: c8f4d786acdd2176f28d4909defc5d64ab764180052befa72a7c9da577bd3991

Contents?: true

Size: 1.16 KB

Versions: 23

Compression:

Stored size: 1.16 KB

Contents

# Copyright:: (c) Autotelik Media Ltd 2011
# Author ::   Tom Statter
# Date ::     Feb 2011
# License::   MIT
#
# Usage::     rake datashift:file_rename input=/blah image_load input=path_to_images
#
namespace :datashift do

  desc "copy or mv a folder of files, consistently renaming in the process"
  task :file_rename, :input, :offset, :prefix, :width, :commit, :mv do |t, args|
    raise "USAGE: rake file_rename input='C:\blah' [offset=n prefix='str' width=n]" unless args[:input] && File.exists?(args[:input])
    width = args[:width] || 2

    action = args[:mv] ? 'mv' : 'cp'

    cache = args[:input]

    if(File.exists?(cache) )
      puts "Renaming files from #{cache}"
      Dir.glob(File.join(cache, "*")) do |name|
        path, base_name = File.split(name)
        id = base_name.slice!(/\w+/)

        id = id.to_i + args[:offset].to_i if(args[:offset])
        id = "%0#{width}d" % id.to_i if(args[:width])
        id = args[:prefix] + id.to_s if(args[:prefix])

        destination = File.join(path, "#{id}#{base_name}")
        puts "ACTION: #{action} #{name} #{destination}"

        File.send( action, name, destination) if args[:commit]
      end
    end
  end

end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
datashift-0.16.0 tasks/file_tasks.rake
datashift-0.15.0 tasks/file_tasks.rake
datashift-0.14.0 tasks/file_tasks.rake
datashift-0.13.0 tasks/file_tasks.rake
datashift-0.12.1 tasks/file_tasks.rake
datashift-0.12.0 tasks/file_tasks.rake
datashift-0.11.1 tasks/file_tasks.rake
datashift-0.11.0 tasks/file_tasks.rake
datashift-0.10.2 tasks/file_tasks.rake
datashift-0.10.1 tasks/file_tasks.rake
datashift-0.10.0 tasks/file_tasks.rake
datashift-0.9.0 tasks/file_tasks.rake
datashift-0.8.0 tasks/file_tasks.rake
datashift-0.7.0 tasks/file_tasks.rake
datashift-0.6.1 tasks/file_tasks.rake
datashift-0.6.0 tasks/file_tasks.rake
datashift-0.5.0 tasks/file_tasks.rake
datashift-0.4.3 tasks/file_tasks.rake
datashift-0.4.2 tasks/file_tasks.rake
datashift-0.4.0 tasks/file_tasks.rake