diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..31e7ecc --- /dev/null +++ b/.envrc @@ -0,0 +1,97 @@ +# -*- mode: sh; -*- +# Thanks +export_function() +{ + local name=$1 + local alias_dir=$PWD/.direnv/aliases + mkdir -p "$alias_dir" + PATH_add "$alias_dir" + local target="$alias_dir/$name" + if declare -f "$name" >/dev/null; then + echo "#!$SHELL" > "$target" + declare -f "$name" >> "$target" 2>/dev/null + # Notice that we add shell variables to the function trigger. + echo "$name \$*" >> "$target" + chmod +x "$target" + fi +} + +use_guix() +{ + # Set GitHub token. + export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + + # Unset 'GUIX_PACKAGE_PATH'. + export GUIX_PACKAGE_PATH="" + + # Recreate a garbage collector root. + gcroots="$HOME/.config/guix/gcroots" + mkdir -p "$gcroots" + gcroot="$gcroots/guix" + if [ -L "$gcroot" ] + then + rm -v "$gcroot" + fi + + # Miscellaneous packages. + PACKAGES_MAINTENANCE=( + direnv + git + git:send-email + git-cal + gnupg + guile-colorized + guile-readline + less + ncurses + openssh + xdot + ) + + # Environment packages. + PACKAGES=(help2man guile-sqlite3 guile-gcrypt + autoconf autoconf-archive automake libtool + pkg-config openssl libxml2) + + # Thanks + eval "$(guix environment --search-paths --root="$gcroot" --pure guix json-c --ad-hoc ${PACKAGES[@]} ${PACKAGES_MAINTENANCE[@]} "$@")" + + export CC=gcc + + # Predefine configure flags. + configure() + { + ./configure --localstatedir=/var --prefix= + } + export_function configure + + # Run make and optionally build something. + build() + { + make -j 2 + if [ $# -gt 0 ] + then + ./pre-inst-env guix build "$@" + fi + } + export_function build + + # Predefine push Git command. + push() + { + git push --set-upstream origin + } + export_function push + + clear # Clean up the screen. + git-cal --author='Your Name' # Show contributions calendar. + + # Show commands help. + echo " +build build a package or just a project if no argument provided +configure run ./configure with predefined parameters +push push to upstream Git repository +" +} + +use guix diff --git a/.gitignore b/.gitignore index 28a8c3c..93fe681 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.direnv *~ compile_commands.json cscope*