development/flow: Added (A static type checker for JavaScript).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Ryan P.C. McQuen 2015-12-23 05:04:07 +07:00 committed by Willy Sudiarto Raharjo
parent 64b77a1c86
commit 1f2bc8d8af
4 changed files with 141 additions and 0 deletions

11
development/flow/README Normal file
View file

@ -0,0 +1,11 @@
The goal of Flow is to find errors in JavaScript code with little programmer effort.
Flow relies heavily on type inference to find type errors even when the program has not been annotated
It precisely tracks the types of variables as they flow through the program.
At the same time, Flow is a gradual type system.
Any parts of your program that are dynamic in nature can easily bypass the type checker
so you can mix statically typed code with dynamic code.
Flow also supports a highly expressive type language.
Flow types can express much more fine-grained distinctions than traditional type systems.
For example, Flow helps you catch errors involving null, unlike most type systems.

View file

@ -0,0 +1,101 @@
#!/bin/sh
# Slackware build script for flow
# Ryan P.C. McQuen | Everett, WA | ryan.q@linux.com
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version, with the following exception:
# the text of the GPL license may be omitted.
# This program is distributed in the hope that it will be useful, but
# without any warranty; without even the implied warranty of
# merchantability or fitness for a particular purpose. Compiling,
# interpreting, executing or merely reading the text of the program
# may result in lapses of consciousness and/or very being, up to and
# including the end of all existence and the Universe as we know it.
# See the GNU General Public License for more details.
# You may have received a copy of the GNU General Public License along
# with this program (most likely, a file named COPYING). If not, see
# <https://www.gnu.org/licenses/>.
PRGNAM=flow
VERSION=${VERSION:-0.20.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
if [ -e $CWD/v$VERSION.tar.gz ]; then
tar xvf $CWD/v$VERSION.tar.gz
else
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
fi
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Need to remove this for Slackware 14.2
sed -i "s|EXTRA_INCLUDE_PATHS=|EXTRA_INCLUDE_PATHS=/usr/include/libelf|" Makefile
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
make
mkdir -p $PKG/opt/$PRGNAM/ $PKG/usr/bin/
mv bin/ $PKG/opt/$PRGNAM/
(
cd $PKG/usr/bin
ln -sf /opt/$PRGNAM/bin/$PRGNAM $PRGNAM
)
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a Changelog.md CONTRIBUTING.md LICENSE PATENTS README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="flow"
VERSION="0.20.1"
HOMEPAGE="http://flowtype.org/"
DOWNLOAD="https://github.com/facebook/flow/archive/v0.20.1.tar.gz"
MD5SUM="3a5c5752a0e402c23aaa9730ea70b7be"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="ocaml"
MAINTAINER="Ryan P.C. McQuen"
EMAIL="ryan.q@linux.com"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
flow: flow (A static type checker for JavaScript)
flow:
flow: Adds static typing to JavaScript to improve developer productivity
flow: and code quality.
flow:
flow:
flow:
flow:
flow:
flow: http://flowtype.org/
flow: