Como abrir URL no navegador padrão em: Go, Python, Ruby e Rust

Saiba como fazer essa mesma tarefa em 4 linguagens de programação diferentes.


Como abrir URL no navegador padrão em: Go, Python, Ruby e Rust


Fazer a mesma tarefas em variadas linguagens de programação faz melhorar nosso conceito de lógica. Ou seja, o mesmo resultado, mas com sintaxes diferentes.

Nesse artigo vamos ver como abrir uma URL no navegador padrão em 4 linguagens de programação diferentes:

Vamos lá!


Python

Em Python basta importarmos a biblioteca webbrowser e usarmos a função open() indicando a URL, exemplo:

vim openurl.py

import webbrowser
url="https://terminalroot.com.br/"
webbrowser.open(url)

Para rodar: python openurl.py

Moleza, né?!


Go

Em Golang poderíamos usar o pacote: open-golang e usar os comandos: go mod init github.com/skratchdot/open-golang/open e go mod tidy e compilar.

Mas você pode criar uma função para isso, que verificará o comando em cada sistema operacional diferente(open, xdg-open e start), logo o código ficaria assim:

vim openurl.go

package main

import (
  "fmt"
  "os/exec"
  "runtime"
  "log"
)

func openbrowser(url string) {
  var err error
  switch runtime.GOOS {
  case "linux":
    err = exec.Command("xdg-open", url).Start()
  case "windows":
    err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
  case "darwin":
    err = exec.Command("open", url).Start()
  default:
    err = fmt.Errorf("unsupported platform")
  }
  if err != nil {
    log.Fatal(err)
  }
}

func main (){
  openbrowser("https://terminalroot.com.br/")
}

Para rodar: go build openurl.go && ./openurl

Quase fácil, digamos assim! 😃


Rust

Em Rust é quase similar ao caso de Go, ou seja, há um crate que você pode baixar e usar ou você pode criar uma função e de acordo com o sistema operacional e rodar o processo com o devido comando, vamos fazer a segunda opção:

Use o std::process::Command!

Para simplificar vamos mostrar como fazer isso em sistemas tipo UNIX:

vim openurl.rs

use std::process::Command;

fn main() {
    let url = "https://terminalroot.com.br/";
    let mut openurl = Command::new("xdg-open");
    openurl.arg(url);
    openurl.status().expect("process failed to execute");
}

Para rodar: rustc openurl.rs && ./openurl

Mais ou menos fácil também! 😎


Ruby

Em Ruby não foge da lógica para Go e Rust. Ou seja, utilizaremos o RbConfig::CONFIG['host_os'] para detectar o sistema operacional e criar um case para o comando adequado. Assim:

vim openurl.rb

cmd = case  RbConfig::CONFIG['host_os']
  when  /mswin|mingw|cygwin/ then "start "
  when  /darwin/ then "open "
  when  /linux|bsd/ then "xdg-open "
  else raise "No OS detected"
end
    
b = system cmd + "https://terminalroot.com.br/"

Para rodar: ruby openurl.rb

Se não fose o case seria mais moleza, exemplo em sistema tipo UNIX bastava rodar via linha de comando:

ruby -e 'system "xdg-open " + "https://terminalroot.com.br/"'

Quase um BASH! Mais moleza que isso só rodando diretamente no prompt! 😛

Algumas pessoas poderão perguntar:

— E em C/C++ ?

Haha, é só usar o system()! 🍺

Fui!


Links úteis


programacao python go ruby rust


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!