Compare commits
8 commits
0.1.0-alph
...
main
Author | SHA1 | Date | |
---|---|---|---|
a711af3ec8 | |||
4277eb752b | |||
80ace62abf | |||
ee41d5f96d | |||
e43b792df8 | |||
552b635b59 | |||
8a64320214 | |||
a74579d709 |
6 changed files with 21 additions and 11 deletions
|
@ -93,7 +93,7 @@ snag restore [-h] [--no-pre] [--no-post] <snapshot_hash>
|
|||
```
|
||||
|
||||
- `--no-pre` — Skips pre-commands.
|
||||
- `--no-post` —焦性
|
||||
- `--no-post` — Skips post-commands.
|
||||
- `<snapshot_hash>` — Hash of the snapshot to restore.
|
||||
|
||||
### `snag list`
|
||||
|
|
|
@ -237,7 +237,9 @@ int main(string[] args)
|
|||
return EXIT_FAILURE;
|
||||
} catch (Exception e) {
|
||||
writeln(
|
||||
"AN UNEXPECTED ERROR HAS OCCURRED! PLEASE REPORT IT TO THE AUTHOR OF THE SNAG!\n\n",
|
||||
"AN UNEXPECTED ERROR HAS OCCURRED!\n",
|
||||
"PLEASE REPORT IT TO THE AUTHOR OF THE SNAG: ",
|
||||
"alexander@zhirov.kz (Alexander Zhirov)\n\n",
|
||||
e
|
||||
);
|
||||
return EXIT_FAILURE;
|
||||
|
|
|
@ -22,8 +22,8 @@ class Snag {
|
|||
|
||||
this(SnagConfig config) {
|
||||
_baseCommand = format(
|
||||
"git --git-dir=%s --work-tree=%s",
|
||||
config.git, config.project
|
||||
"git -C %s --git-dir=%s --work-tree=%s",
|
||||
config.project, config.git, config.project
|
||||
).split();
|
||||
|
||||
_config = config;
|
||||
|
@ -131,7 +131,7 @@ class Snag {
|
|||
}
|
||||
writeln("The following list of files requires backup:");
|
||||
result.output.split('\n')[0..$-1].map!(e =>
|
||||
e.strip.split
|
||||
e.strip.splitByFirstSpace
|
||||
).each!(e =>
|
||||
writefln("\t%s\t/%s", gitStatus(e[0], true), e[1])
|
||||
);
|
||||
|
@ -250,7 +250,7 @@ class Snag {
|
|||
[
|
||||
"log",
|
||||
"--all",
|
||||
"--date=format:%Y.%m.%d %H:%M",
|
||||
"--date=format:%Y.%m.%d %H:%M:%S",
|
||||
"--pretty=" ~ format
|
||||
],
|
||||
"Failed to retrieve the list of snapshots"
|
||||
|
@ -381,8 +381,8 @@ class Snag {
|
|||
|
||||
// Выполнение git команд относительно распакованного архива
|
||||
string[] customCommand = format(
|
||||
"git --git-dir=%s --work-tree=%s",
|
||||
_config.git, tempDirectory
|
||||
"git -C %s --git-dir=%s --work-tree=%s",
|
||||
tempDirectory, _config.git, tempDirectory
|
||||
).split();
|
||||
|
||||
// Необходимо проверить, что текущее состояние файлов не идентично файлам распакованного архива
|
||||
|
|
|
@ -75,8 +75,8 @@ class SnagRules {
|
|||
_gitignoreBak = _gitignore ~ ".bak";
|
||||
|
||||
_baseCommand = format(
|
||||
"git --git-dir=%s --work-tree=%s",
|
||||
config.git, config.project
|
||||
"git -C %s --git-dir=%s --work-tree=%s",
|
||||
config.project, config.git, config.project
|
||||
).split();
|
||||
|
||||
generate();
|
||||
|
|
|
@ -2,6 +2,8 @@ module snag.lib.lib;
|
|||
|
||||
import std.regex;
|
||||
import std.process;
|
||||
import std.algorithm;
|
||||
import std.string;
|
||||
|
||||
bool isValidHash(string hash) {
|
||||
auto hashPattern = ctRegex!r"^[a-fA-F0-9]{7}$";
|
||||
|
@ -17,3 +19,9 @@ bool checkGit() {
|
|||
auto result = execute(["which", "git"]);
|
||||
return !result.status;
|
||||
}
|
||||
|
||||
string[] splitByFirstSpace(string line) {
|
||||
auto spaceIndex = line.indexOf(' ');
|
||||
return spaceIndex == -1 ?
|
||||
[line] : [line[0 .. spaceIndex], line[spaceIndex + 1..$]];
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module snag.version_;
|
||||
|
||||
enum snagVersion = "0.1.0-alpha.1";
|
||||
enum snagVersion = "0.1.0-alpha.2";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue