# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack import *


class SkilionOnedrive(MakefilePackage):
    """A complete tool to interact with OneDrive on Linux,
    developed by Skilion, following the UNIX philosophy."""

    homepage = "https://github.com/skilion/onedrive"
    url      = "https://github.com/skilion/onedrive/archive/v1.1.1.tar.gz"

    version('1.1.1', sha256='fb51c81ec95c28f3fe3b29e3b7f915e30161bd5f4b14bb53ae5c2233cc1e92e9')

    depends_on('dmd')
    depends_on('curl')
    depends_on('sqlite')

    def edit(self, spec, prefix):
        makefile = FileFilter('Makefile')
        # Generate the version file
        makefile.filter('.git/HEAD .git/index', '', string=True)
        makefile.filter('$(shell git describe --tags)',
                        '{0}'.format(spec.version),
                        string=True)
        # Patch sqlite.d https://github.com/skilion/onedrive/issues/392
        sqlited = FileFilter('src/sqlite.d')
        sqlited.filter('std.c.stdlib', 'core.stdc.stdlib', String=True)

    def build(self, spec, prefix):
        make('onedrive', 'DESTDIR={0}'.format(prefix), 'PREFIX=/')

    def install(self, spec, prefix):
        make('install', 'DESTDIR={0}'.format(prefix), 'PREFIX=/')
