Simple shell script written in Python to create an sbt directory structure.
#! /usr/bin/python
import os
import os.path
import re
import sys
from subprocess import Popen, PIPE
# Compose all data.
project = "MyProject" if len(sys.argv) < 2 else sys.argv[1]
p = Popen(['scala', '-version'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
message = p.communicate()[1]
pattern = r'.+?(\d{1,}\.\d{1,}\.\d{1,}).+'
version = re.findall(pattern, message)[0]
info = { 'project': project, 'version': version }
# Create directory structure.
os.mkdir(project)
src = os.path.join(project, 'src')
main = os.path.join(src, 'main')
test = os.path.join(src, 'test')
os.mkdir(src)
os.mkdir(main)
os.mkdir(test)
folders = ['java', 'resources', 'scala']
for path in [os.path.join(main, folder) for folder in folders]:
os.mkdir(path)
for path in [os.path.join(test, folder) for folder in folders]:
os.mkdir(path)
# Add build.sbt file.
buildInfo = """\
name := "%(project)s"
version := "0.0.1-SNAPSHOT"
scalaVersion := "%(version)s"
""" % (info)
with open(os.path.join(project, 'build.sbt'), 'w') as f:
f.write(buildInfo)