From 5a57b76bf40372abd7c247d53d0d1ecbe7f5b205 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Thu, 30 Jul 2020 00:38:15 +0200 Subject: New script to change repo visibility --- src/gitjoe/addsshkey.pl | 3 ++- src/gitjoe/adduser.pl | 3 ++- src/gitjoe/chdesc.pl | 3 ++- src/gitjoe/chowner.pl | 5 +++-- src/gitjoe/chpublic.pl | 43 +++++++++++++++++++++++++++++++++++++++++++ src/gitjoe/newrepo.pl | 3 ++- src/gitjoe/rmrepo.pl | 3 ++- src/gitjoe/rmuser.pl | 3 ++- vps-do.pl | 2 ++ 9 files changed, 60 insertions(+), 8 deletions(-) create mode 100755 src/gitjoe/chpublic.pl diff --git a/src/gitjoe/addsshkey.pl b/src/gitjoe/addsshkey.pl index c25c879..3340d64 100755 --- a/src/gitjoe/addsshkey.pl +++ b/src/gitjoe/addsshkey.pl @@ -4,7 +4,8 @@ use strict; use warnings; use Term::ANSIColor; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 2) { print colored("Failed!\n", 'bold red') diff --git a/src/gitjoe/adduser.pl b/src/gitjoe/adduser.pl index 8107155..23c7a56 100755 --- a/src/gitjoe/adduser.pl +++ b/src/gitjoe/adduser.pl @@ -8,7 +8,8 @@ use constant { ADDUSER_PATH => '/usr/sbin/adduser', }; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 2) { print colored("Failed!\n", 'bold red') diff --git a/src/gitjoe/chdesc.pl b/src/gitjoe/chdesc.pl index 0a3f22f..e15ca4e 100755 --- a/src/gitjoe/chdesc.pl +++ b/src/gitjoe/chdesc.pl @@ -4,7 +4,8 @@ use strict; use warnings; use Term::ANSIColor; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 3) { print colored("Failed!\n", 'bold red') diff --git a/src/gitjoe/chowner.pl b/src/gitjoe/chowner.pl index fa8ca47..203e4ba 100755 --- a/src/gitjoe/chowner.pl +++ b/src/gitjoe/chowner.pl @@ -4,7 +4,8 @@ use strict; use warnings; use Term::ANSIColor; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 3) { print colored("Failed!\n", 'bold red') @@ -25,7 +26,7 @@ sub main { print $owner_fh $owner; close($owner_fh); substr($repo, -1) = ""; - print "Changed git repository " . colored($repo, 'bold green') . " owner for user " . colored($usr, 'bold') . ".\n" + print "Changed git repository " . colored($repo, 'bold green') . colored(" owner", 'bold') . " for user " . colored($usr, 'bold green') . ".\n" . "New owner: ". colored($owner, 'bold green') . ".\n"; exit; } diff --git a/src/gitjoe/chpublic.pl b/src/gitjoe/chpublic.pl new file mode 100755 index 0000000..e05f024 --- /dev/null +++ b/src/gitjoe/chpublic.pl @@ -0,0 +1,43 @@ +#!/usr/local/bin/perl + +use strict; +use warnings; +use Term::ANSIColor; + +sub main +{ + my $argc = $#ARGV + 1; + if ($argc < 2) { + print colored("Failed!\n", 'bold red') + . "Missing argument, 2 needed " + . colored("[user - reponame]", 'bold') + . "\n"; + exit 1; + } + my $usr = $ARGV[0]; + my $repo = $ARGV[1]; + my $home_dir = '/usr/home/' . $usr . '/'; + if (substr($repo, -4) ne '.git') { + $repo = $repo . '.git'; + } + my $state; + if (-e $home_dir . $repo . '/git-daemon-export-ok') { + unlink($home_dir . $repo . '/git-daemon-export-ok'); + $state = 'private'; + } + else { + open(my $fh, '>', $home_dir . $repo . '/git-daemon-export-ok'); + close($fh); + $state = 'public'; + my (undef, undef, $uid, $gid) = getpwnam($usr); + chown $uid, $gid, $home_dir . $repo . '/git-daemon-export-ok'; + } + print "Changed git repository " . colored($repo, 'bold green') + . " for user " . colored($usr, 'bold green') + . colored(' visibility state to ', 'bold') . colored($state, 'bold green') . ".\n"; + exit; +} + +main(); + +__END__ diff --git a/src/gitjoe/newrepo.pl b/src/gitjoe/newrepo.pl index c7bdc6b..109b69e 100755 --- a/src/gitjoe/newrepo.pl +++ b/src/gitjoe/newrepo.pl @@ -5,7 +5,8 @@ use warnings; use Term::ANSIColor; use File::Find; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 2) { print colored("Failed!\n", 'bold red') diff --git a/src/gitjoe/rmrepo.pl b/src/gitjoe/rmrepo.pl index d56da96..9c82b14 100755 --- a/src/gitjoe/rmrepo.pl +++ b/src/gitjoe/rmrepo.pl @@ -4,7 +4,8 @@ use strict; use warnings; use Term::ANSIColor; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 2) { print colored("Failed!\n", 'bold red') diff --git a/src/gitjoe/rmuser.pl b/src/gitjoe/rmuser.pl index 2840c65..e88ddfa 100755 --- a/src/gitjoe/rmuser.pl +++ b/src/gitjoe/rmuser.pl @@ -8,7 +8,8 @@ use constant { RMUSER_PATH => '/usr/sbin/rmuser', }; -sub main { +sub main +{ my $argc = $#ARGV + 1; if ($argc < 1) { print colored("Failed!\n", 'bold red') diff --git a/vps-do.pl b/vps-do.pl index 0c7410a..0053f35 100755 --- a/vps-do.pl +++ b/vps-do.pl @@ -21,6 +21,7 @@ sub main { $ARGV[0] eq 'adduser' || $ARGV[0] eq 'chdesc' || $ARGV[0] eq 'chowner' || + $ARGV[0] eq 'chpublic' || $ARGV[0] eq 'newrepo' || $ARGV[0] eq 'rmrepo' || $ARGV[0] eq 'rmuser' @@ -43,6 +44,7 @@ sub main { . colored("adduser\n", 'bold green') . colored("chdesc\n", 'bold green') . colored("chowner\n", 'bold green') + . colored("chpublic\n", 'bold green') . colored("newrepo\n", 'bold green') . colored("rmrepo\n", 'bold green') . colored("rmuser\n", 'bold green') -- cgit v1.2.3