|
@@ -12,7 +12,7 @@ use SimplyGit::Git qw(
|
|
readConfig getStatus returnState addFiles
|
|
readConfig getStatus returnState addFiles
|
|
commitChanges pushChanges stashAndReset resetFromUpstream
|
|
commitChanges pushChanges stashAndReset resetFromUpstream
|
|
updateGitIgnore appendRepoUserConfig parseSGConfig
|
|
updateGitIgnore appendRepoUserConfig parseSGConfig
|
|
- warnOnUser basicClone
|
|
|
|
|
|
+ warnOnUser basicClone basicPull
|
|
);
|
|
);
|
|
|
|
|
|
sub initSG($) {
|
|
sub initSG($) {
|
|
@@ -82,10 +82,11 @@ GetOptions(
|
|
'knock',
|
|
'knock',
|
|
'knock-clone=s',
|
|
'knock-clone=s',
|
|
'help',
|
|
'help',
|
|
|
|
+ 'knock-pull',
|
|
);
|
|
);
|
|
|
|
|
|
# TODO: This should maybe be more robust?
|
|
# TODO: This should maybe be more robust?
|
|
-if ( ! -d ".git" && ! defined $args{'knock-clone'} && ! defined $args{'help'} ) {
|
|
|
|
|
|
+if ( ! -d ".git" && ( ! defined $args{'knock-clone'} && ! defined $args{'knock'} && ! defined $args{'help'} ) ) {
|
|
print "Not a git dir, exiting...\n";
|
|
print "Not a git dir, exiting...\n";
|
|
exit 1;
|
|
exit 1;
|
|
}
|
|
}
|
|
@@ -128,11 +129,15 @@ Usage:
|
|
--knock
|
|
--knock
|
|
Will try and knock the defined git server at the defined ports before any operation
|
|
Will try and knock the defined git server at the defined ports before any operation
|
|
* See example.config
|
|
* See example.config
|
|
|
|
+ * Can pass this by itself to perform a knock and exit
|
|
|
|
|
|
--knock-clone
|
|
--knock-clone
|
|
Will try and knock the defined git server and clone the provided repo
|
|
Will try and knock the defined git server and clone the provided repo
|
|
* Will not check if you're in a git dir
|
|
* Will not check if you're in a git dir
|
|
|
|
|
|
|
|
+ --knock-pull
|
|
|
|
+ Will try and knock the defined git server and git pull
|
|
|
|
+
|
|
EOF
|
|
EOF
|
|
;
|
|
;
|
|
|
|
|
|
@@ -225,7 +230,15 @@ sub parseArgs {
|
|
|
|
|
|
if ( defined $args{'knock-clone'} ) {
|
|
if ( defined $args{'knock-clone'} ) {
|
|
if ( scalar keys %args > 2 ) {
|
|
if ( scalar keys %args > 2 ) {
|
|
- print "Knock clone accepts no other args\n";
|
|
|
|
|
|
+ print "--knock-clone accepts no other args\n";
|
|
|
|
+ exit 1;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ( defined $args{'knock-pull'} ) {
|
|
|
|
+ if ( scalar keys %args > 2 ) {
|
|
|
|
+ print "--knock-pull accepts no other args\n";
|
|
|
|
+ exit 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -233,17 +246,22 @@ sub parseArgs {
|
|
|
|
|
|
parseArgs();
|
|
parseArgs();
|
|
my %sgConfig = parseSGConfig($args{'config-file'},$logger);
|
|
my %sgConfig = parseSGConfig($args{'config-file'},$logger);
|
|
-if ( defined $sgConfig{'UserWarn'} ) {
|
|
|
|
|
|
+if ( defined $sgConfig{'UserWarn'} && -d ".git" ) {
|
|
warnOnUser($sgConfig{'user.name'},$sgConfig{'user.email'},$logger);
|
|
warnOnUser($sgConfig{'user.name'},$sgConfig{'user.email'},$logger);
|
|
}
|
|
}
|
|
|
|
|
|
sub knock() {
|
|
sub knock() {
|
|
- if ( defined $sgConfig{'Knock'} && ( defined $args{'knock'} || defined $args{'knock-clone'} ) ) {
|
|
|
|
|
|
+ if ( defined $sgConfig{'Knock'} && ( defined $args{'knock'} || defined $args{'knock-clone'} || defined $args{'knock-pull'} ) ) {
|
|
print "Knocking...\n";
|
|
print "Knocking...\n";
|
|
knocker($sgConfig{'knock.target'},$sgConfig{'ports'},$logger);
|
|
knocker($sgConfig{'knock.target'},$sgConfig{'ports'},$logger);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+if ( defined $args{'knock'} && scalar keys %args == 2 ) {
|
|
|
|
+ print "Just knocking then exiting...\n";
|
|
|
|
+ knock();
|
|
|
|
+ exit 1;
|
|
|
|
+}
|
|
|
|
|
|
# TODO: This sub could be more concise with a sub to print array refs
|
|
# TODO: This sub could be more concise with a sub to print array refs
|
|
if ( defined $args{'view'} ) {
|
|
if ( defined $args{'view'} ) {
|
|
@@ -440,3 +458,8 @@ if ( defined $args{'knock-clone'} ) {
|
|
knock();
|
|
knock();
|
|
basicClone($args{'knock-clone'},$logger);
|
|
basicClone($args{'knock-clone'},$logger);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+if ( defined $args{'knock-pull'} ) {
|
|
|
|
+ knock();
|
|
|
|
+ basicPull($logger);
|
|
|
|
+}
|