From c30e8f04a0f65402cd1ddecb6f238623c07136ab Mon Sep 17 00:00:00 2001 From: Rahmane Ousmane Date: Tue, 30 May 2023 19:32:40 +0200 Subject: [PATCH] Init command --- init.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 init.rb diff --git a/init.rb b/init.rb new file mode 100644 index 0000000..287c0d3 --- /dev/null +++ b/init.rb @@ -0,0 +1,23 @@ +class Init + NGIT_DIRECTORY_PATH = ".ngit".freeze + + def call + raise("Existing NGit repository") if Dir.exists?(NGIT_DIRECTORY_PATH) + + Dir.mkdir(NGIT_DIRECTORY_PATH) + create_directories(%w(objects objects/info objects/pack refs refs/heads refs/tags)) + create_files(%w(HEAD config)) + + $stdout.puts "NGit initialized in #{NGIT_DIRECTORY_PATH}" + end + + private + + def create_directories(paths) + paths.each { |path| Dir.mkdir("#{NGIT_DIRECTORY_PATH}/#{path}") } + end + + def create_files(paths) + paths.each { |path| File.open("#{NGIT_DIRECTORY_PATH}/#{path}", "w") {} } + end +end