diff options
author | EuAndreh <eu@euandre.org> | 2018-12-29 17:20:41 -0200 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2018-12-29 17:21:00 -0200 |
commit | 493a2f862e1e9d8d8d7e71cd6692055926661417 (patch) | |
tree | 0325e0459cceac72000f97ff50987b8925f3e9f0 /slides/website-slides | |
parent | Fix forwarding of arguments to sub-scripts. (diff) | |
download | euandre.org-493a2f862e1e9d8d8d7e71cd6692055926661417.tar.gz euandre.org-493a2f862e1e9d8d8d7e71cd6692055926661417.tar.xz |
Add website-slides as Perl subcommand.
Diffstat (limited to 'slides/website-slides')
-rwxr-xr-x | slides/website-slides | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/slides/website-slides b/slides/website-slides new file mode 100755 index 0000000..a6a774c --- /dev/null +++ b/slides/website-slides @@ -0,0 +1,66 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i perl -p less git perl --pure -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-18.09.tar.gz + +=head1 NAME + +website slides - Create new HTML slide presentations from org-mode template. + +=head1 SYNOPSIS + +website slides [options] + + Options: + --help Show the manpage. + --name The name of the folder containing the slideshow. + +=head1 OPTIONS + +=over 4 + +=item B<-h, --help> + +Prints the manual page and exits. + +=item B<-n, --name> + +The name of the folder containing the slideshow. + +=back + +=head1 DESCRIPTION + +B<website slides> creates an slideshow org-mode text files, that are later processed to produce HTML to be deployed statically. + +=cut + +use strict; +use warnings; +use Getopt::Long qw(:config no_ignore_case bundling); +use Pod::Usage qw(pod2usage); +use File::Basename qw(dirname); +use File::Path qw(make_path); +use File::Copy qw(copy); + +my $help = 0; +my $name = ''; +GetOptions( + 'help|h|?' => \$help, + 'name|n=s' => \$name +) or pod2usage(-verbose => 1, -exitval => 2); +pod2usage(-verbose => 2, -exitval => 0) if $help; + +if (!$name) { + die "Missing required --name argument."; +} + +my $dirname = dirname(__FILE__); +chdir $dirname ; +make_path "$name/reveal.js/"; + +chdir "reveal.js/"; +`git --work-tree="../$name/reveal.js" checkout HEAD -- .`; +`git checkout \$(cat "../$name/reveal.js/VERSION" &> /dev/null || printf ".")`; +`git rev-parse HEAD > "../$name/VERSION"`; +chdir "../"; + +copy("base.org", "$name/index.org") or die "Failed to copy base.org file: $!"; |