User:Lupin/jscat

From Wikipedia, the free encyclopedia

These simple scripts join javascript files together and split them up. I use them for popups.js.

[edit] jscat

#!/bin/bash

# usage:
# jscat *.js       cat js files for later uncatting
# jscat -l *.js    cat js files, stripping out NOLITE chunks

if [ "$1" == "-l" ]; then
    striplite=1
    shift
fi

function docat() {
    if [ "$striplite" == "1" ]; then
        out=$(sed -e '/^\/\/<NOLITE> *$/,/^\/\/<\/NOLITE> *$/d' "$1")
    else 
        out=$(cat "$1")
    fi
    echo "$out"
    t=$(echo "$out" | tail -1);
    if [ -n "$t" ]; then 
        echo
    fi
}

for i in "$@"; do 
    out=$(docat "$i")
    if [ $(echo "$out" | grep -c '[^[:space:]]') -eq '0' ]; then 
        echo Empty "$i" >&2;
        continue;
    fi
    echo // STARTFILE: "$i"
    echo "$out";
    echo // ENDFILE: "$i"
done

[edit] jsuncat

#!/usr/bin/env perl

# usage: jsuncat < popupsdev.js

my $file='';
while (<>) {
  if ( m/^\/\/ STARTFILE: (.*)$/ ) {
    $file=$1;
    die "File $file exists; aborting." if -e "$file";
    print "Starting $file...";
    open(FILE, ">$file");
  } elsif ( m/^\/\/ ENDFILE: $file/ ) {
    close(FILE);
    print "done.\n";
    $file='';
  } else {
    print FILE if "$file" =~ /./;
  }
}

if ( "$file" =~ /./ ) {
  warn "\nWARNING: unclosed file $file\n";
  close(FILE);
}