Method: Roby::Application.unique_dirname
- Defined in:
- lib/roby/app.rb
.unique_dirname(base_dir, path_spec, date_tag = nil) ⇒ Object
Returns a unique directory name as a subdirectory of base_dir, based on path_spec. The generated name is of the form
<base_dir>/a/b/c/YYYYMMDD-HHMM-basename
if path_spec = "a/b/c/basename". A .<number> suffix is appended if the path already exists.
1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 |
# File 'lib/roby/app.rb', line 1770 def self.unique_dirname(base_dir, path_spec, date_tag = nil) if path_spec =~ %r{/$} basename = "" dirname = path_spec else basename = File.basename(path_spec) dirname = File.dirname(path_spec) end date_tag ||= Time.now.strftime("%Y%m%d-%H%M") basename = if !basename.empty? "#{date_tag}-#{basename}" else date_tag end # Check if +basename+ already exists, and if it is the case add a # .x suffix to it full_path = File.(File.join(dirname, basename), base_dir) final_path = full_path i = 0 while File.exist?(final_path) i += 1 final_path = full_path + ".#{i}" end final_path end |