comparison hg-browse @ 9:2711ab9baa52 default tip

use core module only
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Mon, 04 Jan 2021 11:00:54 +0900
parents 38241ae31798
children
comparison
equal deleted inserted replaced
8:38241ae31798 9:2711ab9baa52
1 #!/usr/bin/env perl 1 #!/usr/bin/env perl
2 use strict; 2 use strict;
3 use warnings; 3 use warnings;
4 use IPC::Run3;
5
6 4
7 # hg config経由でhgrcにかかれているpush先を確認する 5 # hg config経由でhgrcにかかれているpush先を確認する
8 my @cmd = ('hg','config','paths.default'); 6 my $push_path = `hg config paths.default`;
9 my ($stdout,$stderr);
10 eval { run3 \@cmd,undef,\$stdout,\$stderr;};
11 7
12 if ($@){ 8 if ($?){
13 print "error! >> $stderr"; 9 print "[eror] failed exec hg config paths.default";
14 exit 1; 10 exit 1;
15 } 11 }
16 12
17 my $open_cmd = $^O eq 'darwin' ? "open" : "xdg-open"; #linux open cmd is xdg-open 13 my $open_cmd = $^O eq 'darwin' ? "open" : "xdg-open"; #linux open cmd is xdg-open
18 14
19 # 無かったら特に何もしない 15 # 無かったら特に何もしない
20 exit 1 unless ($stdout); 16 exit 1 unless ($push_path);
17
21 18
22 # yomitanはパスで開けないので別枠 19 # yomitanはパスで開けないので別枠
23 if ($stdout =~ /(yomitan)|(chatan)/){ 20 my $url;
24 yomitan($stdout); 21
25 } elsif ($stdout =~ /firefly/){ 22 if ($push_path =~ /(yomitan)|(chatan)/){
26 firefly($stdout); 23 $url = yomitan($push_path);
24 } elsif ($push_path =~ /firefly/){
25 $url = firefly($push_path);
26 } else {
27 if ( $push_path =~ m[(https?|ssh)://(\w+@)?(.*)]){
28 $url = "http://$3";
29 }
30 die 'invalid url';
27 } 31 }
28 32
29 if ( $stdout =~ m[(https?|ssh)://(\w+@)?(.*)]){ 33 `$open_cmd $url`;
30 my $url = "http://$3";
31 @cmd = ($open_cmd,$url);
32 eval { run3 \@cmd,undef,\$stdout,\$stderr;};
33 if ($@){
34 print "error! >> $stderr";
35 exit 1;
36 }
37 }
38 34
39 35
40 sub yomitan { 36 sub yomitan {
41 my $input = shift; 37 my $input = shift;
42 my $http_domain = 'https://ie.u-ryukyu.ac.jp/hg/'; 38 my $http_domain = 'https://ie.u-ryukyu.ac.jp/hg/';
43 my $url; 39 my $url;
44 40
45 if ($input =~ m[.*//home/hg/y(\d+)(.+)]){ 41 if ($input =~ m[.*//home/hg/y(\d+)(.+)]){
46 $url = $http_domain . "y$1$2"; 42 $url = $http_domain . "y$1$2";
47 } 43 }
48 @cmd = ($open_cmd,$url); 44 return $url;
49 eval { run3 \@cmd,undef,\$stdout,\$stderr;};
50 exit 0;
51 } 45 }
52 46
53 sub firefly { 47 sub firefly {
54 my $input = shift; 48 my $input = shift;
55 my $http_domain = 'http://www.cr.ie.u-ryukyu.ac.jp/'; 49 my $http_domain = 'http://www.cr.ie.u-ryukyu.ac.jp/';
56 my $url; 50 my $url;
57 if (($input =~ m[.*?firefly.cr.ie.u-ryukyu.ac.jp/(.*)] )||($input =~ m[.*firefly/(.*)])){ 51 if (($input =~ m[.*?firefly.cr.ie.u-ryukyu.ac.jp/(.*)] )||($input =~ m[.*firefly/(.*)])){
58 $url = $http_domain.$1; 52 $url = $http_domain.$1;
59 } 53 }
60 @cmd = ($open_cmd,$url); 54 return $url;
61 eval { run3 \@cmd,undef,\$stdout,\$stderr;};
62 exit 0;
63 } 55 }