Mercurial > hg > Members > anatofuz > anatofuz-tools
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 } |