Skip to content

Commit a7b747d

Browse files
committed
refactoring
1 parent e735be7 commit a7b747d

15 files changed

+74
-75
lines changed

src/main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,24 @@
22
#include <git2.h> // For version number only
33
#include <iostream>
44

5-
#include "git_exception.hpp"
5+
#include "src/utils/git_exception.hpp"
66
#include "version.hpp"
77
#include "subcommand/init_subcommand.hpp"
8+
// #include "subcommand/status_subcommand.hpp"
89

910
int main(int argc, char** argv)
1011
{
1112
int exitCode = 0;
1213
try
1314
{
15+
const libgit2_object lg2_obj;
1416
CLI::App app{"Git using C++ wrapper of libgit2"};
1517

1618
// Top-level command options.
1719
auto version = app.add_flag("-v,--version", "Show version");
1820

1921
// Sub commands
20-
InitSubcommand init(app);
22+
InitSubcommand init(lg2_obj, app);
2123

2224
app.parse(argc, argv);
2325

src/meson.build

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
subdir('subcommand')
2+
subdir('utils')
23
subdir('wrapper')
34

45
src_files = files([
5-
'git_exception.cpp',
66
'main.cpp'
7-
]) + subcommand_files + wrapper_files
7+
]) + subcommand_files + utils_files + wrapper_files

src/subcommand/base_subcommand.hpp

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/subcommand/init_subcommand.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#include <filesystem>
22
#include "init_subcommand.hpp"
3-
#include "../wrapper/repository_wrapper.hpp"
43

5-
InitSubcommand::InitSubcommand(CLI::App& app)
4+
InitSubcommand::InitSubcommand(const libgit2_object&, CLI::App& app)
65
{
76
auto *sub = app.add_subcommand("init", "Explanation of init here");
87

@@ -18,6 +17,5 @@ InitSubcommand::InitSubcommand(CLI::App& app)
1817

1918
void InitSubcommand::run()
2019
{
21-
RepositoryWrapper repo;
22-
repo.init(directory, bare);
20+
RepositoryWrapper::init(directory, bare);
2321
}

src/subcommand/init_subcommand.hpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
#pragma once
22

3+
#include <CLI/CLI.hpp>
34
#include <string>
4-
#include "base_subcommand.hpp"
55

6-
class InitSubcommand : public BaseSubcommand
6+
#include "src/wrapper/repository_wrapper.hpp"
7+
8+
class InitSubcommand
79
{
810
public:
9-
InitSubcommand(CLI::App& app);
11+
12+
explicit InitSubcommand(const libgit2_object&, CLI::App& app);
1013
void run();
1114

1215
private:

src/utils/common.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include <git2.h>
2+
3+
#include "common.hpp"
4+
5+
libgit2_object::libgit2_object()
6+
{
7+
git_libgit2_init();
8+
}
9+
10+
libgit2_object::~libgit2_object()
11+
{
12+
git_libgit2_shutdown();
13+
}

src/utils/common.hpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class noncopiable_nonmovable
2+
{
3+
public:
4+
noncopiable_nonmovable(const noncopiable_nonmovable&) = delete;
5+
noncopiable_nonmovable& operator=(const noncopiable_nonmovable&) = delete;
6+
noncopiable_nonmovable(noncopiable_nonmovable&) = delete;
7+
noncopiable_nonmovable& operator=(noncopiable_nonmovable&&) = delete;
8+
9+
protected:
10+
noncopiable_nonmovable() = default;
11+
~noncopiable_nonmovable() = default;
12+
};
13+
14+
class libgit2_object : private noncopiable_nonmovable
15+
{
16+
public:
17+
18+
libgit2_object();
19+
~libgit2_object();
20+
};
File renamed without changes.
File renamed without changes.

src/utils/meson.build

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
utils_files = files([
2+
'common.cpp',
3+
'git_exception.cpp',
4+
])

0 commit comments

Comments
 (0)