Module: Ptf::Commands::Init

Defined in:
lib/ptf/commands/init.rb

Class Method Summary collapse

Class Method Details

.init(force_override = false) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/ptf/commands/init.rb', line 6

def init(force_override = false)

  default_permissions = Ptf::FileSystem.file_permission
  default_group = Ptf::Group.default_group
  default_counter = Ptf::FileSystem.id_counter_starting_content

  base_dir = Ptf::FileSystem.base_dir

  return_prefix = ""
  if Dir.exist? base_dir
    if force_override
      FileUtils.rm_r base_dir
      return_prefix = "PTF workspace existed, erasing...\n"
    else
      return "A PTF workspace has already been initialized."
    end
  end

  begin
    Dir.mkdir(base_dir, default_permissions)

    info_dir = Ptf::FileSystem.
    Dir.mkdir(info_dir, default_permissions)

    data_dir = Ptf::FileSystem.data_dir
    Dir.mkdir(data_dir, default_permissions)

    tmp_dir = Ptf::FileSystem.tmp_dir
    Dir.mkdir(tmp_dir, default_permissions)

    open_dir = Ptf::FileSystem.
    Dir.mkdir(open_dir, default_permissions)

    closed_dir = Ptf::FileSystem.
    Dir.mkdir(closed_dir, default_permissions)

    Dir.mkdir(File.join(open_dir, default_group.name), default_permissions)
    Dir.mkdir(File.join(closed_dir, default_group.name), default_permissions)

    counter_file = File.new(Ptf::FileSystem.id_counter_file, "w")
    counter_file.puts default_counter
    counter_file.close

    group_file = File.new(Ptf::FileSystem.group_list_file, "w")
    group_file.puts default_group.to_s
    group_file.close
  rescue
    FileUtils.rm_r base_dir
    return return_prefix + "Failed to create PTF workspace."
  end

  return return_prefix + "Created PTF workspace at #{base_dir} successfully!"
end