mirror of
https://gitlab.com/scemama/EZFIO.git
synced 2024-12-22 04:13:34 +01:00
Bash/ezfio.sh
This commit is contained in:
parent
c29b6066c8
commit
62e78049c2
18
.gitignore
vendored
18
.gitignore
vendored
@ -1 +1,19 @@
|
|||||||
update.sh
|
update.sh
|
||||||
|
Python/ezfio.py
|
||||||
|
Ocaml/ezfio.ml
|
||||||
|
Bash/ezfio.sh
|
||||||
|
.ninja_deps
|
||||||
|
.ninja_log
|
||||||
|
generated.ninja
|
||||||
|
lib/libezfio.a
|
||||||
|
lib/libezfio_irp.a
|
||||||
|
make.config
|
||||||
|
src/IRPF90_man/
|
||||||
|
src/IRPF90_temp/
|
||||||
|
src/irpf90.make
|
||||||
|
src/irpf90_entities
|
||||||
|
src/libezfio_groups-gen.py
|
||||||
|
src/libezfio_util-gen.py
|
||||||
|
src/*.pyc
|
||||||
|
src/run
|
||||||
|
src/tags
|
||||||
|
0
Bash/.empty
Normal file
0
Bash/.empty
Normal file
270
Bash/ezfio.sh
270
Bash/ezfio.sh
@ -1,4 +1,272 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# TODO
|
function _ezfio_usage()
|
||||||
|
{
|
||||||
|
echo "
|
||||||
|
Usage:
|
||||||
|
ezfio set_file EZFIO_DIRECTORY
|
||||||
|
ezfio unset_file
|
||||||
|
|
||||||
|
ezfio has DIRECTORY ITEM
|
||||||
|
ezfio get DIRECTORY ITEM
|
||||||
|
ezfio set DIRECTORY ITEM VALUE : Scalar values
|
||||||
|
ezfio set DIRECTORY ITEM : Array values read from stdin
|
||||||
|
|
||||||
|
ezfio set_verbose
|
||||||
|
ezfio unset_verbose
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
function _require_ezfio_file()
|
||||||
|
{
|
||||||
|
if [[ -z ${EZFIO_FILE} ]]
|
||||||
|
then
|
||||||
|
echo "EZFIO directory not set: try 'ezfio set_file'"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d ${EZFIO_FILE} ]]
|
||||||
|
then
|
||||||
|
echo "EZFIO directory not accessible: try 'ezfio set_file'"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _require_first_argument()
|
||||||
|
{
|
||||||
|
if [[ -z $1 ]]
|
||||||
|
then
|
||||||
|
_ezfio_usage
|
||||||
|
echo "Error: First argument not set"
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _require_second_argument()
|
||||||
|
{
|
||||||
|
if [[ -z $2 ]]
|
||||||
|
then
|
||||||
|
_ezfio_usage
|
||||||
|
echo "Error: Second argument not set"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_set_verbose()
|
||||||
|
{
|
||||||
|
function _ezfio_info()
|
||||||
|
{
|
||||||
|
echo "$1"
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_unset_verbose()
|
||||||
|
{
|
||||||
|
function _ezfio_info()
|
||||||
|
{
|
||||||
|
:
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_set_file()
|
||||||
|
{
|
||||||
|
_require_first_argument $@ || return 1
|
||||||
|
|
||||||
|
if [[ ! -d $1 ]]
|
||||||
|
then
|
||||||
|
echo "No such directory: $1"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
export EZFIO_FILE=$1
|
||||||
|
_ezfio_info "Set file ${EZFIO_FILE}"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_unset_file()
|
||||||
|
{
|
||||||
|
_require_ezfio_file || return 1
|
||||||
|
_ezfio_info "Unset file ${EZFIO_FILE}"
|
||||||
|
unset EZFIO_FILE
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_has()
|
||||||
|
{
|
||||||
|
_require_ezfio_file || return 1
|
||||||
|
_require_first_argument $@ || return 1
|
||||||
|
|
||||||
|
if [[ ! -d ${EZFIO_FILE}/${1,,} ]]
|
||||||
|
then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $2 ]]
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ${EZFIO_FILE}/${1,,}/${2,,} ]]
|
||||||
|
then
|
||||||
|
_ezfio_info "EZFIO has $1 / $2"
|
||||||
|
return 0
|
||||||
|
elif [[ -f ${EZFIO_FILE}/${1,,}/${2,,}.gz ]]
|
||||||
|
then
|
||||||
|
_ezfio_info "EZFIO has $1 / $2"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
_ezfio_info "EZFIO doesn't have $1 / $2"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_get()
|
||||||
|
{
|
||||||
|
_require_ezfio_file || return 1
|
||||||
|
|
||||||
|
if [[ -z $1 ]]
|
||||||
|
then
|
||||||
|
ls ${EZFIO_FILE}
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
_ezfio_has $@ || return 1
|
||||||
|
|
||||||
|
if [[ -z $2 ]]
|
||||||
|
then
|
||||||
|
ls ${EZFIO_FILE}/${1,,}
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ${EZFIO_FILE}/${1,,}/${2,,} ]]
|
||||||
|
then
|
||||||
|
cat ${EZFIO_FILE}/${1,,}/${2,,}
|
||||||
|
elif [[ -f ${EZFIO_FILE}/${1,,}/${2,,}.gz ]]
|
||||||
|
then
|
||||||
|
zcat ${EZFIO_FILE}/${1,,}/${2,,}.gz
|
||||||
|
else
|
||||||
|
_ezfio_info "EZFIO doesn't have $1 / $2"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function _ezfio_set()
|
||||||
|
{
|
||||||
|
_require_ezfio_file || return 1
|
||||||
|
_require_first_argument $@ || return 1
|
||||||
|
_require_second_argument $@ || return 2
|
||||||
|
|
||||||
|
if [[ ! -d ${EZFIO_FILE}/${1,,} ]]
|
||||||
|
then
|
||||||
|
mkdir -p ${EZFIO_FILE}/${1,,}
|
||||||
|
fi
|
||||||
|
if [[ ! -z "$3" ]]
|
||||||
|
then
|
||||||
|
echo "$3" > ${EZFIO_FILE}/${1,,}/${2,,}
|
||||||
|
else
|
||||||
|
zcat > ${EZFIO_FILE}/${1,,}/${2,,}.gz
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#---
|
||||||
|
|
||||||
|
function ezfio()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
"has")
|
||||||
|
shift
|
||||||
|
_ezfio_has $@
|
||||||
|
;;
|
||||||
|
|
||||||
|
"set")
|
||||||
|
shift
|
||||||
|
_ezfio_set $@
|
||||||
|
;;
|
||||||
|
|
||||||
|
"get")
|
||||||
|
shift
|
||||||
|
_ezfio_get $@
|
||||||
|
;;
|
||||||
|
|
||||||
|
"set_file")
|
||||||
|
shift
|
||||||
|
_ezfio_set_file $@
|
||||||
|
;;
|
||||||
|
|
||||||
|
"unset_file")
|
||||||
|
shift
|
||||||
|
_ezfio_unset_file
|
||||||
|
;;
|
||||||
|
|
||||||
|
"set_verbose")
|
||||||
|
_ezfio_set_verbose
|
||||||
|
;;
|
||||||
|
|
||||||
|
"unset_verbose")
|
||||||
|
_ezfio_unset_verbose
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_ezfio_usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_ezfio_unset_verbose
|
||||||
|
|
||||||
|
|
||||||
|
# Completion
|
||||||
|
|
||||||
|
|
||||||
|
_Complete()
|
||||||
|
{
|
||||||
|
local cur
|
||||||
|
|
||||||
|
COMPREPLY=()
|
||||||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
|
prev2="${COMP_WORDS[COMP_CWORD-2]}"
|
||||||
|
|
||||||
|
case "${prev2}" in
|
||||||
|
set|has|get)
|
||||||
|
COMPREPLY=( $(compgen -W "$(cd ${EZFIO_FILE}/${prev} ; ls | sed 's/\.gz//' )" -- $cur ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "${prev}" in
|
||||||
|
unset_file|set_verbose|unset_verbose)
|
||||||
|
COMPREPLY=()
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
set_file)
|
||||||
|
COMPREPLY=( $(compgen -W "$(\ls -d */ | sed 's|/||g')" -- ${cur} ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
set|has|get)
|
||||||
|
COMPREPLY=( $(compgen -W "$(cd ${EZFIO_FILE} ; \ls -d */ | sed 's|/||g')" -- $cur ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [[ -z ${EZFIO_FILE} ]]
|
||||||
|
then
|
||||||
|
COMPREPLY=( $(compgen -W 'set_file \
|
||||||
|
set_verbose unset_verbose -h' -- $cur ) )
|
||||||
|
else
|
||||||
|
COMPREPLY=( $(compgen -W 'has get set unset_file \
|
||||||
|
set_verbose unset_verbose -h' -- $cur ) )
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _Complete ezfio
|
||||||
|
8
Makefile
8
Makefile
@ -31,10 +31,10 @@ default: make.config
|
|||||||
$(MAKE) -C $$PWD/src
|
$(MAKE) -C $$PWD/src
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
- bash -c "[[ -e lib/libezfio.a ]] && rm $$PWD/lib/*"
|
- bash -c "[[ -f lib/libezfio.a ]] && rm $$PWD/lib/*"
|
||||||
- bash -c "[[ -e Python/ezfio.py ]] && rm $$PWD/Python/*"
|
- bash -c "[[ -f Python/ezfio.py ]] && rm $$PWD/Python/*"
|
||||||
- bash -c "[[ -e Ocaml/ezfio.ml ]] && rm $$PWD/Ocaml/*"
|
- bash -c "[[ -f Ocaml/ezfio.ml ]] && rm $$PWD/Ocaml/*"
|
||||||
- bash -c "[[ -e Bash/ezfio.sh ]] && rm $$PWD/Bash/*"
|
- bash -c "[[ -f Bash/ezfio.sh ]] && rm $$PWD/Bash/*"
|
||||||
- $(MAKE) -C $$PWD/src veryclean
|
- $(MAKE) -C $$PWD/src veryclean
|
||||||
|
|
||||||
archive: distclean
|
archive: distclean
|
||||||
|
86
README
86
README
@ -1,86 +0,0 @@
|
|||||||
======================================================================
|
|
||||||
EZFIO
|
|
||||||
======================================================================
|
|
||||||
|
|
||||||
Author: A. Scemama, LCPQ-IRSAMC, CNRS-Universite Paul Sabatier
|
|
||||||
scemama@irsamc.ups-tlse.fr
|
|
||||||
|
|
||||||
== About EZFIO ==
|
|
||||||
|
|
||||||
EZFIO is the Easy Fortran I/O library. With EZFIO, your data is organized
|
|
||||||
in a file system inside a main directory. This main directory contains
|
|
||||||
subdirectories, which contain files. Each file corresponds to a data. For
|
|
||||||
atomic data the file is a plain text file, and for array data the file is a
|
|
||||||
gzipped text file.
|
|
||||||
|
|
||||||
|
|
||||||
== Building a library ==
|
|
||||||
|
|
||||||
Your EZFIO library is built according to the definitions given in the
|
|
||||||
files of the 'config' directory. A configuration file can be, for example:
|
|
||||||
---
|
|
||||||
|
|
||||||
system
|
|
||||||
title character*(128)
|
|
||||||
num_elec integer = system_num_alpha + system_num_beta
|
|
||||||
num_alpha integer
|
|
||||||
num_beta integer
|
|
||||||
|
|
||||||
geometry
|
|
||||||
num_atom integer
|
|
||||||
nuc_energy double precision
|
|
||||||
label character*(32) (geometry_num_atom)
|
|
||||||
atomic_number integer (geometry_num_atom)
|
|
||||||
charge double precision (geometry_num_atom)
|
|
||||||
coord double precision (3,geometry_num_atom)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
A subdirectory is defined by its name at the beginning of a new line. The
|
|
||||||
data contained in this subdirectory is defined by the triplet
|
|
||||||
(name,type,dimension), leaving at least one white space at the beginning of the
|
|
||||||
line.
|
|
||||||
If the dimension of an array is a data defined in the file, its name can be
|
|
||||||
used as <name of the subdirectory>_<name of the data>. For example, the
|
|
||||||
dimension '(geometry_num_atom)' uses the data 'num_atom' of subdirectory
|
|
||||||
'geometry'.
|
|
||||||
A data can also be the result of a simple operation. In that case, the
|
|
||||||
simple operation is written after an '=' symbol (as for 'num_elec'). In
|
|
||||||
that case, the data is read_only.
|
|
||||||
|
|
||||||
Once your configuration file is ready, run 'make' and your library will be
|
|
||||||
built.
|
|
||||||
|
|
||||||
== Using the library ==
|
|
||||||
|
|
||||||
In the following, we will call 'EZFIO file' the main directory containing the
|
|
||||||
EZFIO data.
|
|
||||||
|
|
||||||
Only one EZFIO file can be manipulated at a time. To select a file, use:
|
|
||||||
character*(64) :: filename
|
|
||||||
call ezfio_set_file(filename)
|
|
||||||
To get the name of the current used EZFIO file, use
|
|
||||||
character*(64) :: filename
|
|
||||||
call ezfio_get_filename(filename)
|
|
||||||
|
|
||||||
For each data, 3 subroutines are created.
|
|
||||||
<dir> is the name of the subdirectory which contains the data and
|
|
||||||
<data> is the name of the data.
|
|
||||||
|
|
||||||
* subroutine ezfio_has_<dir>_<data> (result)
|
|
||||||
sets result to .True. if the data exists in the EZFIO file, .False. otherwise.
|
|
||||||
|
|
||||||
* subroutine ezfio_set_<dir>_<data> (source)
|
|
||||||
writes the source data to the EZFIO file.
|
|
||||||
|
|
||||||
* subroutine ezfio_get_<dir>_<data> (destination)
|
|
||||||
reads the data from the EZFIO file to the destination.
|
|
||||||
|
|
||||||
For safety, a read-only attribute can be set to the file by
|
|
||||||
call ezfio_set_read_only(.True.)
|
|
||||||
or inquired by
|
|
||||||
logical :: is_read_only
|
|
||||||
call ezfio_is_read_only(is_read_only)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
22
build.ninja
Normal file
22
build.ninja
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
include version
|
||||||
|
|
||||||
|
rule build_generated_ninja
|
||||||
|
command = python configure.py
|
||||||
|
description = Creating generated.ninja
|
||||||
|
generator = 1
|
||||||
|
|
||||||
|
rule run_ninja
|
||||||
|
command = ninja -f $in
|
||||||
|
|
||||||
|
rule build_archive
|
||||||
|
command = git archive --format=tar HEAD > EZFIO.${version}.tar && mkdir -p EZFIO && cd EZFIO && tar -xvf ../EZFIO.${version}.tar && cd .. && rm EZFIO.${version}.tar && tar -zcvf EZFIO.${version}.tar.gz EZFIO && rm -rf EZFIO
|
||||||
|
description = Building archive
|
||||||
|
|
||||||
|
build make.config generated.ninja: build_generated_ninja | configure.py
|
||||||
|
|
||||||
|
build all: run_ninja generated.ninja
|
||||||
|
default all
|
||||||
|
|
||||||
|
build EZFIO.${VERSION}.tar.gz: build_archive
|
||||||
|
|
||||||
|
build archive: phony EZFIO.${VERSION}.tar.gz
|
104
configure.py
104
configure.py
@ -2,21 +2,119 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
if __name__ == '__main__':
|
with open("version",'r') as f:
|
||||||
|
version = f.read().strip().rsplit('=')[1]
|
||||||
|
|
||||||
d_default = {
|
d_default = {
|
||||||
|
"VERSION" : version,
|
||||||
"IRPF90" : 'irpf90',
|
"IRPF90" : 'irpf90',
|
||||||
"FC" : 'gfortran -g -ffree-line-length-none -fPIC',
|
"FC" : 'gfortran -g -ffree-line-length-none -fPIC',
|
||||||
"FCFLAGS" : '-O2',
|
"FCFLAGS" : '-O2',
|
||||||
"RANLIB" : 'ranlib',
|
"RANLIB" : 'ranlib',
|
||||||
"AR" : 'ar',
|
"AR" : 'ar',
|
||||||
"NINJA" : 'ninja'
|
"NINJA" : 'ninja',
|
||||||
|
"CONFIG_FILES" :
|
||||||
|
' '.join([ x for x in os.listdir('config') if x != '.empty'])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def create_make_config():
|
||||||
|
|
||||||
with open("make.config",'w') as out:
|
with open("make.config",'w') as out:
|
||||||
for var,default in d_default.iteritems():
|
for var,default in d_default.iteritems():
|
||||||
try:
|
try:
|
||||||
cur = os.environ[var]
|
cur = os.environ[var]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
cur = default
|
cur = default
|
||||||
out.write("{0} = {1}\n".format(var,cur))
|
out.write('{0}={1}\n'.format(var,cur))
|
||||||
|
|
||||||
|
|
||||||
|
def read_make_config():
|
||||||
|
result = {}
|
||||||
|
with open("make.config",'r') as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
try:
|
||||||
|
key, value = line.strip().split('=')
|
||||||
|
except:
|
||||||
|
print "Error in make.config:"
|
||||||
|
print line
|
||||||
|
sys.exit(1)
|
||||||
|
result[key] = value
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def create_build_ninja():
|
||||||
|
|
||||||
|
if "make.config" not in os.listdir(os.getcwd()):
|
||||||
|
create_make_config()
|
||||||
|
|
||||||
|
d = read_make_config()
|
||||||
|
|
||||||
|
d["irpf90_files"] = [ "src/{0}".format(x) for x in
|
||||||
|
"""
|
||||||
|
IRPF90_temp/build.ninja irpf90.make irpf90_entities
|
||||||
|
tags
|
||||||
|
""".split() ] + \
|
||||||
|
"""
|
||||||
|
Python/ezfio.py Ocaml/ezfio.ml Bash/ezfio.sh
|
||||||
|
""".split()
|
||||||
|
|
||||||
|
d["irpf90_sources"] = [ "src/{0}".format(x) for x in
|
||||||
|
"""
|
||||||
|
libezfio_error.irp.f create_ocaml.py groups_templates.py
|
||||||
|
libezfio_file.irp.f create_python.py libezfio_groups-gen.py
|
||||||
|
libezfio_groups.irp.f ezfio-head.py libezfio_util-gen.py
|
||||||
|
libezfio_util.irp.f ezfio-tail.py read_config.py run.irp.f
|
||||||
|
f_types.py test.py create_bash.py groups.py
|
||||||
|
""".split() ] + [ "make.config" ]
|
||||||
|
|
||||||
|
d["irpf90_files"] = ' '.join(d["irpf90_files"])
|
||||||
|
d["irpf90_sources"] = ' '.join(d["irpf90_sources"])
|
||||||
|
|
||||||
|
|
||||||
|
template = """
|
||||||
|
rule build_archive
|
||||||
|
command = git archive --format=tar HEAD > EZFIO.{VERSION}.tar && mkdir -p EZFIO && cd EZFIO && tar -xvf ../EZFIO.{VERSION}.tar && cd .. && rm EZFIO.{VERSION}.tar && tar -zcvf EZFIO.{VERSION}.tar.gz EZFIO && rm -rf EZFIO
|
||||||
|
description = Building archive
|
||||||
|
|
||||||
|
rule build_make_config
|
||||||
|
command = python configure.py
|
||||||
|
description = Creating make.config
|
||||||
|
|
||||||
|
rule compile_irpf90
|
||||||
|
command = cd src ; {IRPF90} --ninja
|
||||||
|
description = Compiling IRPF90
|
||||||
|
|
||||||
|
rule build_irpf90_a
|
||||||
|
command = {NINJA} -C src/IRPF90_temp
|
||||||
|
description = Compiling Fortran files
|
||||||
|
|
||||||
|
rule build_libezfio_a
|
||||||
|
command = cp src/IRPF90_temp/irpf90.a lib/libezfio.a ; {RANLIB} lib/libezfio.a
|
||||||
|
description = Building libezfio.a
|
||||||
|
|
||||||
|
rule build_libezfio_irp_a
|
||||||
|
command = cp lib/libezfio.a lib/libezfio_irp.a ; {AR} dv lib/libezfio_irp.a irp_stack.irp.o ; {RANLIB} lib/libezfio_irp.a
|
||||||
|
description = Building libezfio_irp.a
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
build make.config: build_make_config | configure.py
|
||||||
|
|
||||||
|
build {irpf90_files}: compile_irpf90 | {irpf90_sources}
|
||||||
|
|
||||||
|
build src/IRPF90_temp/irpf90.a: build_irpf90_a | {irpf90_files}
|
||||||
|
|
||||||
|
build lib/libezfio.a: build_libezfio_a | src/IRPF90_temp/irpf90.a
|
||||||
|
|
||||||
|
build lib/libezfio_irp.a: build_libezfio_irp_a | lib/libezfio.a
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
with open('generated.ninja','w') as f:
|
||||||
|
f.write(template.format(**d))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
create_build_ninja()
|
||||||
|
@ -77,13 +77,13 @@ def run():
|
|||||||
'let has_%(group)s_%(var)s () = has_array "%(group)s" "%(var)s" ;;' %(d) ]
|
'let has_%(group)s_%(var)s () = has_array "%(group)s" "%(var)s" ;;' %(d) ]
|
||||||
|
|
||||||
|
|
||||||
file = open('ezfio.ml','r')
|
file = open('ezfio.sh','r')
|
||||||
template = file.read()
|
template = file.read()
|
||||||
file.close()
|
file.close()
|
||||||
template = template.replace("(*$HEAD*)",'\n'.join(head))
|
template = template.replace("(*$HEAD*)",'\n'.join(head))
|
||||||
template = template.replace("(*$TAIL*)",'\n'.join(tail))
|
template = template.replace("(*$TAIL*)",'\n'.join(tail))
|
||||||
|
|
||||||
file = open('../Ocaml/ezfio.ml','w')
|
file = open('../Bash/ezfio-gen.sh','w')
|
||||||
file.write(template)
|
file.write(template)
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user