gog.exlib: initial implementation
This commit is contained in:
		
							parent
							
								
									a49dfb90fc
								
							
						
					
					
						commit
						d38a0069c4
					
				
							
								
								
									
										79
									
								
								exlibs/gog.exlib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								exlibs/gog.exlib
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,79 @@
 | 
			
		||||
# Copyright 2019 Julian Ospald <hasufell@posteo.de>
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
 | 
			
		||||
# Purpose: an exlib dealing with installation of GOG games
 | 
			
		||||
# Maintainer: Julian Ospald <hasufell@posteo.de>
 | 
			
		||||
# Exports: pkg_nofetch, pkg_setup, src_unpack
 | 
			
		||||
# Side-effects: - adds build dependencies
 | 
			
		||||
#               - sets $WORK, $DOWNLOADS, $LICENSES, $RESTRICT and $HOMEPAGE
 | 
			
		||||
#
 | 
			
		||||
# Usage
 | 
			
		||||
#   exparams: - installer: the shell script installer (required)
 | 
			
		||||
#             - unzip: whether to unzip and add unzip dependency (default: true)
 | 
			
		||||
#             - install_dir: installation dir (default: /opt/${PN})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
myexparam installer=
 | 
			
		||||
myexparam -b unzip=true
 | 
			
		||||
myexparam install_dir=/opt/${PN}
 | 
			
		||||
 | 
			
		||||
exparam -v GOG_SH installer
 | 
			
		||||
exparam -v GOG_INSTALL_DIR install_dir
 | 
			
		||||
 | 
			
		||||
if [[ -z $(exparam installer) ]]; then
 | 
			
		||||
    die "installer needs to be set!"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "$GOG_INSTALL_DIR" != /* ]]; then
 | 
			
		||||
    die "${GOG_INSTALL_DIR} must be absolute!"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export_exlib_phases pkg_nofetch pkg_setup src_unpack
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
HOMEPAGE="https://www.gog.com"
 | 
			
		||||
DOWNLOADS="manual: ${GOG_SH}"
 | 
			
		||||
 | 
			
		||||
LICENCES="all-rights-reserved GOG-EULA"
 | 
			
		||||
RESTRICT="fetch"
 | 
			
		||||
 | 
			
		||||
if exparam -b unzip ; then
 | 
			
		||||
    DEPENDENCIES+="
 | 
			
		||||
        build:
 | 
			
		||||
            virtual/unzip
 | 
			
		||||
    "
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
WORK="${WORKBASE}/data/noarch"
 | 
			
		||||
 | 
			
		||||
# Exported 'pkg_nofetch'.
 | 
			
		||||
#
 | 
			
		||||
# Arguments: none
 | 
			
		||||
# Side-effects: prints einfo
 | 
			
		||||
gog_pkg_nofetch() {
 | 
			
		||||
    einfo
 | 
			
		||||
    einfo "Please buy & download \"${GOG_SH}\""
 | 
			
		||||
    einfo "from:"
 | 
			
		||||
    einfo "  ${HOMEPAGE}"
 | 
			
		||||
    einfo "and move/link it to \"${FETCHEDDIR}\""
 | 
			
		||||
    einfo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Exported 'pkg_setup'.
 | 
			
		||||
#
 | 
			
		||||
# Arguments: none
 | 
			
		||||
# Side-effects: makes sure /opt is allowed to be installed into
 | 
			
		||||
gog_pkg_setup() {
 | 
			
		||||
    exdirectory --allow "$(dirname "${GOG_INSTALL_DIR}")"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Exported 'src_unpack'.
 | 
			
		||||
#
 | 
			
		||||
# Arguments: none
 | 
			
		||||
# Side-effects: unpacks the data
 | 
			
		||||
gog_src_unpack() {
 | 
			
		||||
    if exparam -b unzip ; then
 | 
			
		||||
        unzip -qo "${FETCHEDDIR}/${GOG_SH}"
 | 
			
		||||
        [[ $? -le 1 ]] || die "unpacking ${GOG_SH} failed!"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user