aboutsummaryrefslogtreecommitdiff
path: root/nomsu.moon
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-02-06 15:33:10 -0800
committerBruce Hill <bruce@bruce-hill.com>2019-02-06 15:34:00 -0800
commit057f5b74ebb7851f6ba824129b3e3316cae23260 (patch)
tree2561ca637f5db834cb8f8b82831cbbbbc26d71ae /nomsu.moon
parent618e48ad98c0e2b36eb22c75251dddc141d822e6 (diff)
Moving to better, more centralized versioning system. Now the Nomsu
version is just defined as a list at the top of nomsu.moon, and uses X.Y.Z form instead of X.Y.Z.W. Added a ([...], from 2) method and a ([...], up to 5) method, and fixed a few upgrade bugs.
Diffstat (limited to 'nomsu.moon')
-rwxr-xr-xnomsu.moon29
1 files changed, 17 insertions, 12 deletions
diff --git a/nomsu.moon b/nomsu.moon
index 94b5388..4ffb7c8 100755
--- a/nomsu.moon
+++ b/nomsu.moon
@@ -1,7 +1,14 @@
#!/usr/bin/env moon
-- This file contains the command-line Nomsu runner.
+export NOMSU_VERSION
+NOMSU_VERSION = {7, 0, 0}
clibtype = package.cpath\match("?%.(so)") or package.cpath\match("?%.(dll)")
+
+if NOMSU_PREFIX
+ package.path = "#{NOMSU_PREFIX}/share/nomsu/#{table.concat NOMSU_VERSION, "."}/?.lua;"..package.path
+ package.cpath = "#{NOMSU_PREFIX}/lib/nomsu/#{table.concat NOMSU_VERSION, "."}/?.#{clibtype};"..package.cpath
+
export COLOR_ENABLED
COLOR_ENABLED = true
if clibtype == "dll"
@@ -13,9 +20,10 @@ if clibtype == "dll"
-- Special hack to enable utf8 for windows console applications:
os.execute("chcp 65001>nul")
-if NOMSU_VERSION and NOMSU_PREFIX
- package.path = "#{NOMSU_PREFIX}/share/nomsu/#{NOMSU_VERSION}/?.lua;"..package.path
- package.cpath = "#{NOMSU_PREFIX}/lib/nomsu/#{NOMSU_VERSION}/?.#{clibtype};"..package.cpath
+{:List, :Dict} = require 'containers'
+NOMSU_VERSION = List(NOMSU_VERSION)
+Text = require 'text'
+require 'builtin_metatables'
usage = [=[
Nomsu Compiler
@@ -46,9 +54,6 @@ if not ok
os.exit(EXIT_FAILURE)
Files = require "files"
{:NomsuCode, :LuaCode, :Source} = require "code_obj"
-{:List, :Dict} = require 'containers'
-Text = require 'text'
-require 'builtin_metatables'
sep = "\3"
parser = re.compile([[
@@ -94,6 +99,9 @@ if not args or err or args.help
print("Didn't understand: #{err}")
print usage
os.exit(EXIT_FAILURE)
+if args.version
+ print(NOMSU_VERSION\joined_with("."))
+ os.exit(EXIT_SUCCESS)
nomsu_args = Dict{}
for argpair in *args.nomsu_args
nomsu_args[argpair.key] = argpair.value
@@ -106,8 +114,8 @@ suffixes = if optimization > 0
else {"?.nom", "?/init.nom"}
add_path = (p)->
for s in *suffixes do table.insert(nomsupath, p.."/"..s)
-if NOMSU_VERSION and NOMSU_PREFIX
- add_path "#{NOMSU_PREFIX}/share/nomsu/#{NOMSU_VERSION}/lib"
+if NOMSU_PREFIX
+ add_path "#{NOMSU_PREFIX}/share/nomsu/#{NOMSU_VERSION\joined_with(".")}/lib"
else
add_path "./lib"
NOMSU_PACKAGEPATH or= "/opt/nomsu"
@@ -117,6 +125,7 @@ package.nomsupath = table.concat(nomsupath, ";")
package.nomsuloaded = Dict{}
nomsu_environment = require('nomsu_environment')
+nomsu_environment.NOMSU_VERSION = NOMSU_VERSION
nomsu_environment.COMMAND_LINE_ARGS = nomsu_args
nomsu_environment.OPTIMIZATION = optimization
nomsu_environment.NOMSU_PACKAGEPATH = NOMSU_PACKAGEPATH
@@ -127,10 +136,6 @@ run = ->
unless args.no_core
nomsu_environment\export("core")
- if args.version
- nomsu_environment\run("say (Nomsu version)")
- os.exit(EXIT_SUCCESS)
-
input_files = {}
if args.files
for f in *args.files