view 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
line wrap: on
line source

#!/usr/bin/env perl
use strict;
use warnings;

# hg config経由でhgrcにかかれているpush先を確認する
my $push_path = `hg config paths.default`;

if ($?){
    print "[eror] failed exec hg config paths.default";
    exit 1;
}

my $open_cmd = $^O eq 'darwin' ? "open" : "xdg-open"; #linux open cmd is xdg-open

# 無かったら特に何もしない
exit 1 unless ($push_path);


# yomitanはパスで開けないので別枠
my $url;

if ($push_path =~ /(yomitan)|(chatan)/){
    $url = yomitan($push_path);
} elsif ($push_path =~ /firefly/){
    $url = firefly($push_path);
} else {
  if ( $push_path =~ m[(https?|ssh)://(\w+@)?(.*)]){
      $url = "http://$3";
  }
  die 'invalid url';
}

`$open_cmd $url`;


sub yomitan {
    my $input  = shift;
    my $http_domain = 'https://ie.u-ryukyu.ac.jp/hg/';
    my $url;

    if ($input =~ m[.*//home/hg/y(\d+)(.+)]){
        $url = $http_domain . "y$1$2";
    }
    return $url;
}

sub firefly {
    my $input  = shift;
    my $http_domain = 'http://www.cr.ie.u-ryukyu.ac.jp/';
    my $url;
    if (($input =~ m[.*?firefly.cr.ie.u-ryukyu.ac.jp/(.*)] )||($input =~  m[.*firefly/(.*)])){
        $url = $http_domain.$1;
    }
    return $url;
}