changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/lib/tenex/util/lib.rs

changeset 28: bc174808bc53
parent: 35ec32058823
child: 0ccbbd142694
author: ellis <ellis@rwest.io>
date: Thu, 02 Nov 2023 21:42:52 -0400
permissions: -rw-r--r--
description: emacs and rust/lib/tenex
24
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
1
 //! Tenex utilities
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
2
 // re-exports
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
3
 #[cfg(feature = "oauth2")]
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
4
 pub use oauth2;
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
5
 #[cfg(feature = "indicatif")]
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
6
 pub use indicatif;
28
bc174808bc53 emacs and rust/lib/tenex
ellis <ellis@rwest.io>
parents: 24
diff changeset
7
 pub use futures_util::StreamExt;
24
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
8
 /// OS-specific browser command. supports Win/Mac/Linux
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
9
 pub fn open_browser(url: &str) {
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
10
   if cfg!(target_os = "windows") {
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
11
     // https://stackoverflow.com/a/49115945
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
12
     std::process::Command::new("rundll32.exe")
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
13
       .args(&["url.dll,FileProtocolHandler", url])
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
14
       .status()
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
15
       .expect("failed to open file");
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
16
   } else if cfg!(target_os = "macos") || cfg!(target_os = "linux") {
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
17
     // https://dwheeler.com/essays/open-files-urls.html
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
18
     #[cfg(target_os = "macos")]
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
19
     let cmd = "open";
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
20
     #[cfg(target_os = "linux")]
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
21
     let cmd = "xdg-open";
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
22
 
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
23
     #[cfg(any(target_os = "macos", target_os = "linux"))]
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
24
     {
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
25
       std::process::Command::new(cmd)
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
26
         .arg(url)
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
27
         .status()
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
28
         .expect("failed to open URL");
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
29
     }
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
30
   } else {
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
31
     unimplemented!() // ignore others
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
32
   }
35ec32058823 tenex updates - util wrappers
ellis <ellis@rwest.io>
parents:
diff changeset
33
 }