Explorar o código

chore(devtools): remove deprecated devtools

Signed-off-by: Christina Sørensen <christina@cafkafk.com>
Christina Sørensen %!s(int64=2) %!d(string=hai) anos
pai
achega
319594f1c1

+ 0 - 5
devtools/README.md

@@ -1,5 +0,0 @@
-## exa › development tools
-
-These scripts deal with things like packaging release-worthy versions of exa.
-
-They are **not general-purpose scripts** that you’re able to run from your main computer! They’re intended to be run from the Vagrant machine.

+ 0 - 65
devtools/dev-bash.sh

@@ -1,65 +0,0 @@
-# This file gets executed when a user starts a `bash` shell, usually because
-# they’ve just started a new Vagrant session with `vagrant ssh`. It configures
-# some (but not all) of the commands that you can use.
-
-
-# Display the installed versions of tools.
-# help banner
-bash /vagrant/devtools/dev-versions.sh
-
-
-# Configure the Cool Prompt™ (not actually trademarked).
-# The Cool Prompt tells you whether you’re in debug or strict mode, whether
-# you have colours configured, and whether your last command failed.
-nonzero_return() { RETVAL=$?; [ "$RETVAL" -ne 0 ] && echo "$RETVAL "; }
-debug_mode()  { [ "$EXA_DEBUG" == "trace" ] && echo -n "trace-"; [ -n "$EXA_DEBUG" ] && echo "debug "; }
-strict_mode() { [ -n "$EXA_STRICT" ] && echo "strict "; }
-lsc_mode()    { [ -n "$LS_COLORS" ]  && echo "lsc "; }
-exac_mode()   { [ -n "$EXA_COLORS" ] && echo "exac "; }
-export PS1="\[\e[1;36m\]\h \[\e[32m\]\w \[\e[31m\]\`nonzero_return\`\[\e[35m\]\`debug_mode\`\[\e[32m\]\`lsc_mode\`\[\e[1;32m\]\`exac_mode\`\[\e[33m\]\`strict_mode\`\[\e[36m\]\\$\[\e[0m\] "
-
-
-# The ‘debug’ function lets you switch debug mode on and off.
-# Turn it on if you need to see exa’s debugging logs.
-debug() {
-  case "$1" in
-    ""|"on")  export EXA_DEBUG=1 ;;
-    "off")    export EXA_DEBUG= ;;
-    "trace")  export EXA_DEBUG=trace ;;
-    "status") [ -n "$EXA_DEBUG" ] && echo "debug on" || echo "debug off" ;;
-    *)        echo "Usage: debug on|off|trace|status"; return 1 ;;
-  esac;
-}
-
-# The ‘strict’ function lets you switch strict mode on and off.
-# Turn it on if you’d like exa’s command-line arguments checked.
-strict() {
-  case "$1" in
-    "on")  export EXA_STRICT=1 ;;
-    "off") export EXA_STRICT= ;;
-    "")    [ -n "$EXA_STRICT" ] && echo "strict on" || echo "strict off" ;;
-    *)     echo "Usage: strict on|off"; return 1 ;;
-  esac;
-}
-
-# The ‘colors’ function sets or unsets the ‘LS_COLORS’ and ‘EXA_COLORS’
-# environment variables. There’s also a ‘hacker’ theme which turns everything
-# green, which is usually used for checking that all colour codes work, and
-# for looking cool while you phreak some mainframes or whatever.
-colors() {
-  case "$1" in
-    "ls")
-      export LS_COLORS="di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43"
-      export EXA_COLORS="" ;;
-    "hacker")
-      export LS_COLORS="di=32:ex=32:fi=32:pi=32:so=32:bd=32:cd=32:ln=32:or=32:mi=32"
-      export EXA_COLORS="ur=32:uw=32:ux=32:ue=32:gr=32:gw=32:gx=32:tr=32:tw=32:tx=32:su=32:sf=32:xa=32:sn=32:sb=32:df=32:ds=32:uu=32:un=32:gu=32:gn=32:lc=32:lm=32:ga=32:gm=32:gd=32:gv=32:gt=32:xx=32:da=32:in=32:bl=32:hd=32:lp=32:cc=32:" ;;
-    "off")
-      export LS_COLORS=
-      export EXA_COLORS= ;;
-    "")
-      [ -n "$LS_COLORS" ]  && echo "LS_COLORS=$LS_COLORS"   || echo "ls-colors off"
-      [ -n "$EXA_COLORS" ] && echo "EXA_COLORS=$EXA_COLORS" || echo "exa-colors off" ;;
-    *) echo "Usage: ls-colors ls|hacker|off"; return 1 ;;
-  esac;
-}

+ 0 - 377
devtools/dev-create-test-filesystem.sh

@@ -1,377 +0,0 @@
-#!/usr/bin/env bash
-# This script creates a bunch of awkward test case files. It gets
-# automatically run as part of Vagrant provisioning.
-trap 'exit' ERR
-
-if [[ ! -d "/vagrant" ]]; then
-    echo "This script should be run in the Vagrant environment"
-    exit 1
-fi
-
-source "/vagrant/devtools/dev-fixtures.sh"
-
-
-# Delete old testcases if they exist already, then create a
-# directory to house new ones.
-if [[ -d "$TEST_ROOT" ]]; then
-    echo -e "\033[1m[ 0/13]\033[0m Deleting existing test cases directory"
-    sudo rm -rf "$TEST_ROOT"
-fi
-
-sudo mkdir "$TEST_ROOT"
-sudo chmod 777 "$TEST_ROOT"
-sudo mkdir "$TEST_ROOT/empty"
-
-
-# Awkward file size testcases.
-# This needs sudo to set the files’ users at the very end.
-mkdir "$TEST_ROOT/files"
-echo -e "\033[1m[ 1/13]\033[0m Creating file size testcases"
-for i in {1..13}; do
-  fallocate -l "$i" "$TEST_ROOT/files/$i"_bytes
-  fallocate -l "$i"KiB "$TEST_ROOT/files/$i"_KiB
-  fallocate -l "$i"MiB "$TEST_ROOT/files/$i"_MiB
-done
-
-touch -t $FIXED_DATE "$TEST_ROOT/files/"*
-touch -t $FIXED_DATE "$TEST_ROOT/files/"
-chmod 644 "$TEST_ROOT/files/"*
-sudo chown $FIXED_USER:$FIXED_USER "$TEST_ROOT/files/"*
-
-
-# File name extension testcases.
-# These aren’t tested in details view, but we set timestamps on them to
-# test that various sort options work.
-mkdir "$TEST_ROOT/file-names-exts"
-echo -e "\033[1m[ 2/13]\033[0m Creating file name extension testcases"
-
-touch "$TEST_ROOT/file-names-exts/Makefile"
-
-touch "$TEST_ROOT/file-names-exts/IMAGE.PNG"
-touch "$TEST_ROOT/file-names-exts/image.svg"
-
-touch "$TEST_ROOT/file-names-exts/VIDEO.AVI"
-touch "$TEST_ROOT/file-names-exts/video.wmv"
-
-touch "$TEST_ROOT/file-names-exts/music.mp3"
-touch "$TEST_ROOT/file-names-exts/MUSIC.OGG"
-
-touch "$TEST_ROOT/file-names-exts/lossless.flac"
-touch "$TEST_ROOT/file-names-exts/lossless.wav"
-
-touch "$TEST_ROOT/file-names-exts/crypto.asc"
-touch "$TEST_ROOT/file-names-exts/crypto.signature"
-
-touch "$TEST_ROOT/file-names-exts/document.pdf"
-touch "$TEST_ROOT/file-names-exts/DOCUMENT.XLSX"
-
-touch "$TEST_ROOT/file-names-exts/COMPRESSED.ZIP"
-touch "$TEST_ROOT/file-names-exts/compressed.tar.gz"
-touch "$TEST_ROOT/file-names-exts/compressed.tgz"
-touch "$TEST_ROOT/file-names-exts/compressed.tar.xz"
-touch "$TEST_ROOT/file-names-exts/compressed.txz"
-touch "$TEST_ROOT/file-names-exts/compressed.deb"
-
-touch "$TEST_ROOT/file-names-exts/backup~"
-touch "$TEST_ROOT/file-names-exts/#SAVEFILE#"
-touch "$TEST_ROOT/file-names-exts/file.tmp"
-
-touch "$TEST_ROOT/file-names-exts/compiled.class"
-touch "$TEST_ROOT/file-names-exts/compiled.o"
-touch "$TEST_ROOT/file-names-exts/compiled.js"
-touch "$TEST_ROOT/file-names-exts/compiled.coffee"
-
-
-# File name testcases.
-# bash really doesn’t want you to create a file with escaped characters
-# in its name, so we have to resort to the echo builtin and touch!
-mkdir "$TEST_ROOT/file-names"
-echo -e "\033[1m[ 3/13]\033[0m Creating file names testcases"
-
-echo -ne "$TEST_ROOT/file-names/ascii: hello" | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/emoji: [🆒]"  | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/utf-8: pâté"  | xargs -0 touch
-
-echo -ne "$TEST_ROOT/file-names/bell: [\a]"         | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/backspace: [\b]"    | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/form-feed: [\f]"    | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/new-line: [\n]"     | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/return: [\r]"       | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/tab: [\t]"          | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/vertical-tab: [\v]" | xargs -0 touch
-
-echo -ne "$TEST_ROOT/file-names/escape: [\033]"               | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/ansi: [\033[34mblue\033[0m]" | xargs -0 touch
-
-echo -ne "$TEST_ROOT/file-names/invalid-utf8-1: [\xFF]"                | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/invalid-utf8-2: [\xc3\x28]"           | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/invalid-utf8-3: [\xe2\x82\x28]"      | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/invalid-utf8-4: [\xf0\x28\x8c\x28]" | xargs -0 touch
-
-echo -ne "$TEST_ROOT/file-names/new-line-dir: [\n]"                | xargs -0 mkdir
-echo -ne "$TEST_ROOT/file-names/new-line-dir: [\n]/subfile"        | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/new-line-dir: [\n]/another: [\n]" | xargs -0 touch
-echo -ne "$TEST_ROOT/file-names/new-line-dir: [\n]/broken"         | xargs -0 touch
-
-mkdir "$TEST_ROOT/file-names/links"
-ln -s "$TEST_ROOT/file-names/new-line-dir"*/* "$TEST_ROOT/file-names/links"
-
-echo -ne "$TEST_ROOT/file-names/new-line-dir: [\n]/broken" | xargs -0 rm
-
-
-# Special file testcases.
-mkdir "$TEST_ROOT/specials"
-echo -e "\033[1m[ 4/13]\033[0m Creating special file kind testcases"
-
-sudo mknod "$TEST_ROOT/specials/block-device" b  3 60
-sudo mknod "$TEST_ROOT/specials/char-device"  c 14 40
-sudo mknod "$TEST_ROOT/specials/named-pipe"   p
-
-sudo touch -t $FIXED_DATE "$TEST_ROOT/specials/"*
-
-
-# Awkward symlink testcases.
-mkdir "$TEST_ROOT/links"
-echo -e "\033[1m[ 5/13]\033[0m Creating symlink testcases"
-
-ln -s /            "$TEST_ROOT/links/root"
-ln -s /usr         "$TEST_ROOT/links/usr"
-ln -s nowhere      "$TEST_ROOT/links/broken"
-ln -s /proc/1/root "$TEST_ROOT/links/forbidden"
-
-touch "$TEST_ROOT/links/some_file"
-ln -s "$TEST_ROOT/links/some_file" "$TEST_ROOT/links/some_file_absolute"
-(cd "$TEST_ROOT/links"; ln -s "some_file" "some_file_relative")
-(cd "$TEST_ROOT/links"; ln -s "."         "current_dir")
-(cd "$TEST_ROOT/links"; ln -s ".."        "parent_dir")
-(cd "$TEST_ROOT/links"; ln -s "itself"    "itself")
-
-
-# Awkward passwd testcases.
-# sudo is needed for these because we technically aren’t a member
-# of the groups (because they don’t exist), and chown and chgrp
-# are smart enough to disallow it!
-mkdir "$TEST_ROOT/passwd"
-echo -e "\033[1m[ 6/13]\033[0m Creating user and group testcases"
-
-touch -t $FIXED_DATE                  "$TEST_ROOT/passwd/unknown-uid"
-chmod 644                             "$TEST_ROOT/passwd/unknown-uid"
-sudo chown $FIXED_BAD_UID:$FIXED_USER "$TEST_ROOT/passwd/unknown-uid"
-
-touch -t $FIXED_DATE                  "$TEST_ROOT/passwd/unknown-gid"
-chmod 644                             "$TEST_ROOT/passwd/unknown-gid"
-sudo chown $FIXED_USER:$FIXED_BAD_GID "$TEST_ROOT/passwd/unknown-gid"
-
-
-# Awkward permission testcases.
-# Differences in the way ‘chmod’ handles setting ‘setuid’ and ‘setgid’
-# when you don’t already own the file mean that we need to use ‘sudo’
-# to change permissions to those.
-mkdir "$TEST_ROOT/permissions"
-echo -e "\033[1m[ 7/13]\033[0m Creating file permission testcases"
-
-mkdir                              "$TEST_ROOT/permissions/forbidden-directory"
-chmod 000                          "$TEST_ROOT/permissions/forbidden-directory"
-touch -t $FIXED_DATE               "$TEST_ROOT/permissions/forbidden-directory"
-sudo chown $FIXED_USER:$FIXED_USER "$TEST_ROOT/permissions/forbidden-directory"
-
-for perms in 000 001 002 004 010 020 040 100 200 400 644 755 777 1000 1001 2000 2010 4000 4100 7666 7777; do
-    touch                              "$TEST_ROOT/permissions/$perms"
-    sudo chown $FIXED_USER:$FIXED_USER "$TEST_ROOT/permissions/$perms"
-    sudo chmod $perms                  "$TEST_ROOT/permissions/$perms"
-    sudo touch -t $FIXED_DATE          "$TEST_ROOT/permissions/$perms"
-done
-
-
-# Awkward date and time testcases.
-mkdir "$TEST_ROOT/dates"
-echo -e "\033[1m[ 8/13]\033[0m Creating date and time testcases"
-
-# created dates
-# there’s no way to touch the created date of a file...
-# so we have to do this the old-fashioned way!
-# (and make sure these don't actually get listed)
-touch -t $FIXED_OLD_DATE    "$TEST_ROOT/dates/peach";  sleep 1
-touch -t $FIXED_MED_DATE    "$TEST_ROOT/dates/plum";   sleep 1
-touch -t $FIXED_NEW_DATE    "$TEST_ROOT/dates/pear"
-
-# modified dates
-touch -t $FIXED_OLD_DATE -m "$TEST_ROOT/dates/pear"
-touch -t $FIXED_MED_DATE -m "$TEST_ROOT/dates/peach"
-touch -t $FIXED_NEW_DATE -m "$TEST_ROOT/dates/plum"
-
-# accessed dates
-touch -t $FIXED_OLD_DATE -a "$TEST_ROOT/dates/plum"
-touch -t $FIXED_MED_DATE -a "$TEST_ROOT/dates/pear"
-touch -t $FIXED_NEW_DATE -a "$TEST_ROOT/dates/peach"
-
-sudo chown $FIXED_USER:$FIXED_USER -R "$TEST_ROOT/dates"
-
-mkdir "$TEST_ROOT/far-dates"
-touch -t $FIXED_PAST_DATE    "$TEST_ROOT/far-dates/the-distant-past"
-touch -t $FIXED_FUTURE_DATE  "$TEST_ROOT/far-dates/beyond-the-future"
-
-
-# Awkward extended attribute testcases.
-# We need to test combinations of various numbers of files *and*
-# extended attributes in directories. Turns out, the easiest way to
-# do this is to generate all combinations of files with “one-xattr”
-# or “two-xattrs” in their name and directories with “empty” or
-# “one-file” in their name, then just give the right number of
-# xattrs and children to those.
-mkdir "$TEST_ROOT/attributes"
-echo -e "\033[1m[ 9/13]\033[0m Creating extended attribute testcases"
-
-mkdir "$TEST_ROOT/attributes/files"
-touch "$TEST_ROOT/attributes/files/"{no-xattrs,one-xattr,two-xattrs}{,_forbidden}
-
-mkdir "$TEST_ROOT/attributes/dirs"
-mkdir "$TEST_ROOT/attributes/dirs/"{no-xattrs,one-xattr,two-xattrs}_{empty,one-file,two-files}{,_forbidden}
-
-setfattr -n user.greeting         -v hello "$TEST_ROOT/attributes"/**/*{one-xattr,two-xattrs}*
-setfattr -n user.another_greeting -v hi    "$TEST_ROOT/attributes"/**/*two-xattrs*
-
-for dir in "$TEST_ROOT/attributes/dirs/"*one-file*; do
-    touch $dir/file-in-question
-done
-
-for dir in "$TEST_ROOT/attributes/dirs/"*two-files*; do
-    touch $dir/this-file
-    touch $dir/that-file
-done
-
-find "$TEST_ROOT/attributes" -exec touch {} -t $FIXED_DATE \;
-
-# I want to use the following to test,
-# but it only works on macos:
-#chmod +a "$FIXED_USER deny readextattr" "$TEST_ROOT/attributes"/**/*_forbidden
-
-sudo chmod 000                        "$TEST_ROOT/attributes"/**/*_forbidden
-sudo chown $FIXED_USER:$FIXED_USER -R "$TEST_ROOT/attributes"
-
-
-# A sample Git repository
-# This uses cd because it's easier than telling Git where to go each time
-echo -e "\033[1m[10/13]\033[0m Creating Git testcases (1/4)"
-mkdir "$TEST_ROOT/git"
-cd    "$TEST_ROOT/git"
-git init >/dev/null
-
-mkdir edits additions moves
-
-echo "original content" | tee edits/{staged,unstaged,both} >/dev/null
-echo "this file gets moved" > moves/hither
-
-git add edits moves
-git config --global user.email "exa@exa.exa"
-git config --global user.name "Exa Exa"
-git commit -m "Automated test commit" >/dev/null
-
-echo "modifications!" | tee edits/{staged,both} >/dev/null
-touch additions/{staged,edited}
-mv moves/{hither,thither}
-
-git add edits moves additions
-echo "more modifications!" | tee edits/unstaged edits/both additions/edited >/dev/null
-touch additions/unstaged
-
-find "$TEST_ROOT/git" -exec touch {} -t $FIXED_DATE \;
-sudo chown $FIXED_USER:$FIXED_USER -R "$TEST_ROOT/git"
-
-
-# A second Git repository
-# for testing two at once
-echo -e "\033[1m[11/13]\033[0m Creating Git testcases (2/4)"
-mkdir -p "$TEST_ROOT/git2/deeply/nested/directory"
-cd       "$TEST_ROOT/git2"
-git init >/dev/null
-
-touch "deeply/nested/directory/upd8d"
-git add "deeply/nested/directory/upd8d"
-git commit -m "Automated test commit" >/dev/null
-
-echo "Now with contents" > "deeply/nested/directory/upd8d"
-touch "deeply/nested/directory/l8st"
-
-echo -e "target\n*.mp3" > ".gitignore"
-mkdir "ignoreds"
-touch "ignoreds/music.mp3"
-touch "ignoreds/music.m4a"
-mkdir "ignoreds/nested"
-touch "ignoreds/nested/70s grove.mp3"
-touch "ignoreds/nested/funky chicken.m4a"
-mkdir "ignoreds/nested2"
-touch "ignoreds/nested2/ievan polkka.mp3"
-
-mkdir "target"
-touch "target/another ignored file"
-
-mkdir "deeply/nested/repository"
-cd    "deeply/nested/repository"
-git init >/dev/null
-touch subfile
-# This file, ‘subfile’, should _not_ be marked as a new file by exa, because
-# it’s in the sub-repository but hasn’t been added to it. Were the sub-repo not
-# present, it would be marked as a new file, as the top-level repo knows about
-# the ‘deeply’ directory.
-
-find "$TEST_ROOT/git2" -exec touch {} -t $FIXED_DATE \;
-sudo chown $FIXED_USER:$FIXED_USER -R "$TEST_ROOT/git2"
-
-
-# A third Git repository
-# Regression test for https://github.com/ogham/exa/issues/526
-echo -e "\033[1m[12/13]\033[0m Creating Git testcases (3/4)"
-mkdir -p "$TEST_ROOT/git3"
-cd       "$TEST_ROOT/git3"
-git init >/dev/null
-
-# Create a symbolic link pointing to a non-existing file
-ln -s aaa/aaa/a b
-
-# This normally fails with:
-find "$TEST_ROOT/git3" -exec touch {} -h -t $FIXED_DATE \;
-sudo chown $FIXED_USER:$FIXED_USER -R "$TEST_ROOT/git3"
-
-
-# A fourth Git repository
-# Regression test for https://github.com/ogham/exa/issues/698
-echo -e "\033[1m[12/13]\033[0m Creating Git testcases (4/4)"
-mkdir -p "$TEST_ROOT/git4"
-cd       "$TEST_ROOT/git4"
-git init >/dev/null
-
-# Create a non UTF-8 file
-touch 'P'$'\b\211''UUU'
-
-find "$TEST_ROOT/git4" -exec touch {} -h -t $FIXED_DATE \;
-sudo chown $FIXED_USER:$FIXED_USER -R "$TEST_ROOT/git4"
-
-
-# Hidden and dot file testcases.
-# We need to set the permissions of `.` and `..` because they actually
-# get displayed in the output here, so this has to come last.
-echo -e "\033[1m[13/13]\033[0m Creating hidden and dot file testcases"
-shopt -u dotglob
-GLOBIGNORE=".:.."
-
-mkdir "$TEST_ROOT/hiddens"
-cd    "$TEST_ROOT/hiddens"
-touch "$TEST_ROOT/hiddens/visible"
-touch "$TEST_ROOT/hiddens/.hidden"
-touch "$TEST_ROOT/hiddens/..extra-hidden"
-
-# ./hiddens/
-touch -t $FIXED_DATE               "$TEST_ROOT/hiddens/"*
-chmod 644                          "$TEST_ROOT/hiddens/"*
-sudo chown $FIXED_USER:$FIXED_USER "$TEST_ROOT/hiddens/"*
-
-# .
-touch -t $FIXED_DATE               "$TEST_ROOT/hiddens"
-chmod 755                          "$TEST_ROOT/hiddens"
-sudo chown $FIXED_USER:$FIXED_USER "$TEST_ROOT/hiddens"
-
-# ..
-sudo touch -t $FIXED_DATE          "$TEST_ROOT"
-sudo chmod 755                     "$TEST_ROOT"
-sudo chown $FIXED_USER:$FIXED_USER "$TEST_ROOT"

+ 0 - 43
devtools/dev-fixtures.sh

@@ -1,43 +0,0 @@
-#!/usr/bin/env bash
-# This file contains the text fixtures — the known, constant data — that are
-# used when setting up the environment that exa’s tests get run in.
-
-
-# The directory that all the test files are created under.
-export TEST_ROOT=/testcases
-
-
-# Because the timestamps are formatted differently depending on whether
-# they’re in the current year or not (see `details.rs`), we have to make
-# sure that the files are created in the current year, so they get shown
-# in the format we expect.
-export CURRENT_YEAR=$(date "+%Y")
-export FIXED_DATE="${CURRENT_YEAR}01011234.56"  # 1st January, 12:34:56
-
-
-# We also need an UID and a GID that are guaranteed to not exist, to
-# test what happen when they don’t.
-export FIXED_BAD_UID=666
-export FIXED_BAD_GID=616
-
-
-# We create two users that own the test files.
-#
-# The first one just owns the ordinary ones, because we don’t want the
-# test outputs to depend on “vagrant” or “ubuntu” existing.
-#
-# The second one has a long name, to test that the file owner column
-# widens correctly. The benefit of Vagrant is that we don’t need to
-# set this up on the *actual* system!
-export FIXED_USER="cassowary"
-export FIXED_LONG_USER="antidisestablishmentarienism"
-
-
-# A couple of dates, for date-time testing.
-export FIXED_OLD_DATE='200303030000.00'
-export FIXED_MED_DATE='200606152314.29'   # the june gets used for fr_FR locale tests
-export FIXED_NEW_DATE='200912221038.53'   # and the december for ja_JP local tests
-
-# Dates that extend beyond 32-bit timespace.
-export FIXED_PAST_DATE='170001010000.00'
-export FIXED_FUTURE_DATE='230001010000.00'

+ 0 - 21
devtools/dev-help.sh

@@ -1,21 +0,0 @@
-# This file prints out some help text that says which commands are available
-# in the VM. It gets executed during Vagrant provisioning and its output gets
-# dumped into /etc/motd, to print it when a user starts a new Vagrant session.
-
-
-echo -e "
-\033[1;33mThe exa development environment!\033[0m
-exa's source is available at \033[33m/vagrant\033[0m.
-Binaries get built into \033[33m/home/vagrant/target\033[0m.
-
-\033[4mCommands\033[0m
-\033[32;1mexa\033[0m to run the built version of exa
-\033[32;1mbuild-exa\033[0m (or \033[32;1mb\033[0m) to run \033[1mcargo build\033[0m
-\033[32;1mtest-exa\033[0m (or \033[32;1mt\033[0m) to run \033[1mcargo test\033[0m
-\033[32;1mrun-xtests\033[0m (or \033[32;1mx\033[0m) to run the extended tests
-\033[32;1mcompile-exa\033[0m (or \033[32;1mc\033[0m) to run the above three
-\033[32;1mdebug\033[0m to toggle printing logs
-\033[32;1mstrict\033[0m to toggle strict mode
-\033[32;1mcolors\033[0m to toggle custom colours
-\033[32;1mhalp\033[0m to show all this again
-"

+ 0 - 76
devtools/dev-package-for-linux.sh

@@ -1,76 +0,0 @@
-set -e
-
-# This script builds a publishable release-worthy version of exa.
-# It gets the version number, builds exa using cargo, tests it, strips the
-# binary, compresses it into a zip, then puts it in /vagrant so it’s
-# accessible from the host machine.
-#
-# If you’re in the VM, you can run it using the ‘package-exa’ command.
-
-
-# Linux check!
-uname=$(uname -s)
-if [[ "$uname" != "Linux" ]]; then
-  echo "Gotta be on Linux to run this (detected '$uname')!"
-  exit 1
-fi
-
-# First, we need to get the version number to figure out what to call the zip.
-# We do this by getting the first line from the Cargo.toml that matches
-# /version/, removing its whitespace, and building a command out of it, so the
-# shell executes something like `exa_version="0.8.0"`, which it understands as
-# a variable definition. Hey, it’s not a hack if it works.
-toml_file="/vagrant/Cargo.toml"
-eval exa_$(grep version $toml_file | head -n 1 | sed "s/ //g")
-if [ -z "$exa_version" ]; then
-  echo "Failed to parse version number! Can't build exa!"
-  exit 1
-fi
-
-# Weekly builds have a bit more information in their version number (see build.rs).
-if [[ "$1" == "--weekly" ]]; then
-  git_hash=$(GIT_DIR=/vagrant/.git git rev-parse --short --verify HEAD)
-  date=$(date +"%Y-%m-%d")
-  echo "Building exa weekly v$exa_version, date $date, Git hash $git_hash"
-else
-  echo "Building exa v$exa_version"
-fi
-
-# Compilation is done in --release mode, which takes longer but produces a
-# faster binary. This binary gets built to a different place, so the extended
-# tests script needs to be told which one to use.
-echo -e "\n\033[4mCompiling release version of exa...\033[0m"
-exa_linux_binary="/vagrant/exa-linux-x86_64"
-rm -vf "$exa_linux_binary"
-cargo build --release --manifest-path "$toml_file"
-cargo test --release --manifest-path "$toml_file" --lib -- --quiet
-/vagrant/xtests/run.sh --release
-cp /home/vagrant/target/release/exa "$exa_linux_binary"
-
-# Stripping the binary before distributing it removes a bunch of debugging
-# symbols, saving some space.
-echo -e "\n\033[4mStripping binary...\033[0m"
-strip -v "$exa_linux_binary"
-
-# Compress the binary for upload. The ‘-j’ flag is necessary to avoid the
-# /vagrant path being in the zip too. Only the zip gets the version number, so
-# the binaries can have consistent names, and it’s still possible to tell
-# different *downloads* apart.
-echo -e "\n\033[4mZipping binary...\033[0m"
-if [[ "$1" == "--weekly" ]]; then
-  exa_linux_zip="/vagrant/exa-linux-x86_64-${exa_version}-${date}-${git_hash}.zip"
-else
-  exa_linux_zip="/vagrant/exa-linux-x86_64.zip"
-fi
-rm -vf "$exa_linux_zip"
-zip -j "$exa_linux_zip" "$exa_linux_binary"
-
-# There was a problem a while back where a library was getting unknowingly
-# *dynamically* linked, which broke the whole ‘self-contained binary’ concept.
-# So dump the linker table, in case anything unscrupulous shows up.
-echo -e "\n\033[4mLibraries linked:\033[0m"
-ldd "$exa_linux_binary" | sed "s/\t//"
-
-# Might as well use it to test itself, right?
-echo -e "\n\033[4mAll done! Files produced:\033[0m"
-"$exa_linux_binary" "$exa_linux_binary" "$exa_linux_zip" -lB

+ 0 - 7
devtools/dev-run-debug.sh

@@ -1,7 +0,0 @@
-#!/usr/bin/env bash
-if [[ -f ~/target/debug/exa ]]; then
-  ~/target/debug/exa "$@"
-else
-  echo -e "Debug exa binary does not exist!"
-  echo -e "Run \033[32;1mb\033[0m or \033[32;1mbuild-exa\033[0m to create it"
-fi

+ 0 - 7
devtools/dev-run-release.sh

@@ -1,7 +0,0 @@
-#!/usr/bin/env bash
-if [[ -f ~/target/release/exa ]]; then
-  ~/target/release/exa "$@"
-else
-  echo -e "Release exa binary does not exist!"
-  echo -e "Run \033[32;1mb --release\033[0m or \033[32;1mbuild-exa --release\033[0m to create it"
-fi

+ 0 - 55
devtools/dev-set-up-environment.sh

@@ -1,55 +0,0 @@
-#!/usr/bin/env bash
-
-if [[ ! -d "/vagrant" ]]; then
-    echo "This script should be run in the Vagrant environment"
-    exit 1
-fi
-
-if [[ $EUID -ne 0 ]]; then
-    echo "This script should be run as root"
-    exit 1
-fi
-
-source "/vagrant/devtools/dev-fixtures.sh"
-
-
-# create our test users
-
-if id -u $FIXED_USER &>/dev/null; then
-    echo "Normal user already exists"
-else
-    echo "Creating normal user"
-    useradd $FIXED_USER
-fi
-
-if id -u $FIXED_LONG_USER &>/dev/null; then
-    echo "Long user already exists"
-else
-    echo "Creating long user"
-    useradd $FIXED_LONG_USER
-fi
-
-
-# locale generation
-
-# remove most of this file, it slows down locale-gen
-if grep -F -q "en_GB.UTF-8 UTF-8" /var/lib/locales/supported.d/en; then
-    echo "Removing existing locales"
-    echo "en_US.UTF-8 UTF-8" > /var/lib/locales/supported.d/en
-fi
-
-# uncomment these from the config file
-if grep -F -q "# fr_FR.UTF-8" /etc/locale.gen; then
-    sed -i '/fr_FR.UTF-8/s/^# //g' /etc/locale.gen
-fi
-if grep -F -q "# ja_JP.UTF-8" /etc/locale.gen; then
-    sed -i '/ja_JP.UTF-8/s/^# //g' /etc/locale.gen
-fi
-
-# only regenerate locales if the config files are newer than the locale archive
-if [[ ( /var/lib/locales/supported.d/en -nt /usr/lib/locale/locale-archive ) || \
-      ( /etc/locale_gen                 -nt /usr/lib/locale/locale-archive ) ]]; then
-    locale-gen
-else
-    echo "Locales already generated"
-fi

+ 0 - 8
devtools/dev-versions.sh

@@ -1,8 +0,0 @@
-# Displays the installed versions of Rust and Cargo.
-# This gets run from ‘dev-bash.sh’, which gets run from ‘~/.bash_profile’, so
-# the versions gets displayed after the help text for a new Vagrant session.
-
-echo -e "\\033[4mVersions\\033[0m"
-rustc --version
-cargo --version
-echo

+ 0 - 84
devtools/local-package-for-macos.sh

@@ -1,84 +0,0 @@
-set -e
-
-# This script builds a publishable release-worthy version of exa.
-# It gets the version number, builds exa using cargo, tests it, strips the
-# binary, and compresses it into a zip.
-#
-# It’s *mostly* the same as dev-package-for-linux.sh, except with some
-# Mach-specific things (otool instead of ldd), BSD-coreutils-specific things,
-# and it doesn’t run the xtests.
-
-
-# Virtualising macOS is a legal minefield, so this script is ‘local’ instead
-# of ‘dev’: I run it from my actual machine, rather than from a VM.
-uname=$(uname -s)
-if [[ "$uname" != "Darwin" ]]; then
-  echo "Gotta be on Darwin to run this (detected '$uname')!"
-  exit 1
-fi
-
-# First, we need to get the version number to figure out what to call the zip.
-# We do this by getting the first line from the Cargo.toml that matches
-# /version/, removing its whitespace, and building a command out of it, so the
-# shell executes something like `exa_version="0.8.0"`, which it understands as
-# a variable definition. Hey, it’s not a hack if it works.
-#
-# Because this can’t use the absolute /vagrant path, this has to use what this
-# SO answer calls a “quoting disaster”: https://stackoverflow.com/a/20196098/3484614
-# You will also need GNU coreutils: https://stackoverflow.com/a/4031502/3484614
-exa_root="$(dirname "$(dirname "$(greadlink -fm "$0")")")"
-toml_file="$exa_root"/Cargo.toml
-eval exa_$(grep version $toml_file | head -n 1 | sed "s/ //g")
-if [ -z "$exa_version" ]; then
-  echo "Failed to parse version number! Can't build exa!"
-  exit 1
-fi
-
-# Weekly builds have a bit more information in their version number (see build.rs).
-if [[ "$1" == "--weekly" ]]; then
-  git_hash=$(GIT_DIR=$exa_root/.git git rev-parse --short --verify HEAD)
-  date=$(date +"%Y-%m-%d")
-  echo "Building exa weekly v$exa_version, date $date, Git hash $git_hash"
-else
-  echo "Building exa v$exa_version"
-fi
-
-# Compilation is done in --release mode, which takes longer but produces a
-# faster binary.
-echo -e "\n\033[4mCompiling release version of exa...\033[0m"
-exa_macos_binary="$exa_root/exa-macos-x86_64"
-rm -vf "$exa_macos_binary" | sed 's/^/removing /'
-cargo build --release --manifest-path "$toml_file"
-cargo test --release --manifest-path "$toml_file" --lib -- --quiet
-# we can’t run the xtests outside the VM!
-#/vagrant/xtests/run.sh --release
-cp "$exa_root"/target/release/exa "$exa_macos_binary"
-
-# Stripping the binary before distributing it removes a bunch of debugging
-# symbols, saving some space.
-echo -e "\n\033[4mStripping binary...\033[0m"
-strip "$exa_macos_binary"
-echo "strip $exa_macos_binary"
-
-# Compress the binary for upload. The ‘-j’ flag is necessary to avoid the
-# current path being in the zip too. Only the zip gets the version number, so
-# the binaries can have consistent names, and it’s still possible to tell
-# different *downloads* apart.
-echo -e "\n\033[4mZipping binary...\033[0m"
-if [[ "$1" == "--weekly" ]]; then
-  exa_macos_zip="$exa_root/exa-macos-x86_64-${exa_version}-${date}-${git_hash}.zip"
-else
-  exa_macos_zip="$exa_root/exa-macos-x86_64-${exa_version}.zip"
-fi
-rm -vf "$exa_macos_zip" | sed 's/^/removing /'
-zip -j "$exa_macos_zip" "$exa_macos_binary"
-
-# There was a problem a while back where a library was getting unknowingly
-# *dynamically* linked, which broke the whole ‘self-contained binary’ concept.
-# So dump the linker table, in case anything unscrupulous shows up.
-echo -e "\n\033[4mLibraries linked:\033[0m"
-otool -L "$exa_macos_binary" | sed 's/^[[:space:]]*//'
-
-# Might as well use it to test itself, right?
-echo -e "\n\033[4mAll done! Files produced:\033[0m"
-"$exa_macos_binary" "$exa_macos_binary" "$exa_macos_zip" -lB