#!perl #use 5.010001; use strict; use warnings; use Log::ger::Screen; use Log::ger; our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY our $DATE = '2024-10-01'; # DATE our $DIST = 'App-FirefoxMultiAccountContainersUtils'; # DIST our $VERSION = '0.018'; # VERSION my $container; if (defined(my $c = $ENV{FIREFOX_CONTAINER})) { log_trace "Using container '$c' (from FIREFOX_CONTAINER env))"; $container = $c; } elsif (defined(my $n = $ENV{FIREFOX_CONTAINER_ENV})) { if (defined(my $c = $ENV{$n})) { log_trace "Using container '$c' (from $n env (from FIREFOX_CONTAINER_ENV env))"; $container = $c; } else { log_trace "No container set in $n env (set via FIREFOX_CONTAINER_ENV env)"; } } else { log_trace "No container set"; } my @exec_cmd; if (defined $container) { @exec_cmd = ("open-firefox-container", $container, @ARGV); } else { @exec_cmd = ("firefox", @ARGV); } log_trace "Exec: %s", \@exec_cmd; exec @exec_cmd; # ABSTRACT: Firefox wrapper to open URL's in a specific container # PODNAME: firefox-container __END__ =pod =encoding UTF-8 =head1 NAME firefox-container - Firefox wrapper to open URL's in a specific container =head1 VERSION This document describes version 0.018 of firefox-container (from Perl distribution App-FirefoxMultiAccountContainersUtils), released on 2024-10-01. =head1 SYNOPSIS Use like you would use L<firefox> command: % FIREFOX_CONTAINER=mycontainer firefox-container [options] <URL>... Or set it as your BROWSER: % export BROWSER=firefox-container then use it with commands that open URL's in browser, e.g. L<this-repo-on-github>: % FIREFOX_CONTAINER=mycontainer this-repo-on-github =head1 DESCRIPTION This is a simple wrapper for B<firefox>. If the environment variable L</FIREFOX_CONTAINER> is defined, will open using L<open-firefox-container>. Otherwise, will simply exec C<firefox>. Note that C<open-firefox-container> has a different set of options than C<firefox>, for example to pass the C<--new-window> option to C<firefox> with C<open-firefox-container>: % FIREFOX_CONTAINER=mycontainer firefox-container -b --new-window www.example.com =head1 OPTIONS No other options are parsed by this wrapper. All will be passed to C<firefox>. =head1 ENVIRONMENT =head2 FIREFOX_CONTAINER Set the name of container to open URL's in. Overides by L</FIREFOX_CONTAINER_ENV>. =head2 FIREFOX_CONTAINER_ENV Set the name of environment variable to replace the default L</FIREFOX_CONTAINER>. Why would one want to do this? Because one will be able to use a shorter name for L</FIREFOX_CONTAINER>. So instead of this: % FIREFOX_CONTAINER=mycontainer1 firefox-container ... % FIREFOX_CONTAINER=mycontainer2 other-command ... you can instead use this: % export FIREFOX_CONTAINER_ENV=FC % FC=mycontainer1 firefox-container ... % FC=mycontainer2 other-command ... Overidden by L</FIREFOX_CONTAINER>. =head1 HOMEPAGE Please visit the project's homepage at L<https://metacpan.org/release/App-FirefoxMultiAccountContainersUtils>. =head1 SOURCE Source repository is at L<https://github.com/perlancar/perl-App-FirefoxMultiAccountContainersUtils>. =head1 SEE ALSO L<open-firefox-container> =head1 AUTHOR perlancar <perlancar@cpan.org> =head1 CONTRIBUTING To contribute, you can send patches by email/via RT, or send pull requests on GitHub. Most of the time, you don't need to build the distribution yourself. You can simply modify the code, then test via: % prove -l If you want to build the distribution (e.g. to try to install it locally on your system), you can install L<Dist::Zilla>, L<Dist::Zilla::PluginBundle::Author::PERLANCAR>, L<Pod::Weaver::PluginBundle::Author::PERLANCAR>, and sometimes one or two other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond that are considered a bug and can be reported to me. =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2024, 2023, 2022, 2020 by perlancar <perlancar@cpan.org>. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =head1 BUGS Please report any bugs or feature requests on the bugtracker website L<https://rt.cpan.org/Public/Dist/Display.html?Name=App-FirefoxMultiAccountContainersUtils> When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. =cut