mirror of
https://github.com/moparisthebest/pacman
synced 2024-11-12 04:15:06 -05:00
Add configuration option to control disk space checking
Disk space checking is likely to be an unnecessary bottleneck to people with reasonable partition sizes so add a configuration option to allow it to be disabled/enabled as wanted. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
3f0d98c124
commit
e22aa23c8f
@ -162,6 +162,10 @@ Options
|
|||||||
than the percent of each individual download target. The progress
|
than the percent of each individual download target. The progress
|
||||||
bar is still based solely on the current file download.
|
bar is still based solely on the current file download.
|
||||||
|
|
||||||
|
*CheckSpace*::
|
||||||
|
Performs an approximate check for adequate available disk space before
|
||||||
|
installing packages.
|
||||||
|
|
||||||
Repository Sections
|
Repository Sections
|
||||||
-------------------
|
-------------------
|
||||||
Each repository section defines a section name and at least one location where
|
Each repository section defines a section name and at least one location where
|
||||||
|
@ -33,6 +33,7 @@ Architecture = auto
|
|||||||
#ShowSize
|
#ShowSize
|
||||||
#UseDelta
|
#UseDelta
|
||||||
#TotalDownload
|
#TotalDownload
|
||||||
|
#CheckSpace
|
||||||
|
|
||||||
#
|
#
|
||||||
# REPOSITORIES
|
# REPOSITORIES
|
||||||
|
@ -155,6 +155,9 @@ void alpm_option_set_arch(const char *arch);
|
|||||||
int alpm_option_get_usedelta();
|
int alpm_option_get_usedelta();
|
||||||
void alpm_option_set_usedelta(int usedelta);
|
void alpm_option_set_usedelta(int usedelta);
|
||||||
|
|
||||||
|
int alpm_option_get_checkspace();
|
||||||
|
void alpm_option_set_checkspace(int checkspace);
|
||||||
|
|
||||||
pmdb_t *alpm_option_get_localdb();
|
pmdb_t *alpm_option_get_localdb();
|
||||||
alpm_list_t *alpm_option_get_syncdbs();
|
alpm_list_t *alpm_option_get_syncdbs();
|
||||||
|
|
||||||
|
@ -232,6 +232,15 @@ int SYMEXPORT alpm_option_get_usedelta()
|
|||||||
return handle->usedelta;
|
return handle->usedelta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SYMEXPORT alpm_option_get_checkspace()
|
||||||
|
{
|
||||||
|
if (handle == NULL) {
|
||||||
|
pm_errno = PM_ERR_HANDLE_NULL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return handle->checkspace;
|
||||||
|
}
|
||||||
|
|
||||||
pmdb_t SYMEXPORT *alpm_option_get_localdb()
|
pmdb_t SYMEXPORT *alpm_option_get_localdb()
|
||||||
{
|
{
|
||||||
if (handle == NULL) {
|
if (handle == NULL) {
|
||||||
@ -550,4 +559,9 @@ void SYMEXPORT alpm_option_set_usedelta(int usedelta)
|
|||||||
handle->usedelta = usedelta;
|
handle->usedelta = usedelta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SYMEXPORT alpm_option_set_checkspace(int checkspace)
|
||||||
|
{
|
||||||
|
handle->checkspace = checkspace;
|
||||||
|
}
|
||||||
|
|
||||||
/* vim: set ts=2 sw=2 noet: */
|
/* vim: set ts=2 sw=2 noet: */
|
||||||
|
@ -60,6 +60,7 @@ typedef struct _pmhandle_t {
|
|||||||
int usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */
|
int usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */
|
||||||
char *arch; /* Architecture of packages we should allow */
|
char *arch; /* Architecture of packages we should allow */
|
||||||
int usedelta; /* Download deltas if possible */
|
int usedelta; /* Download deltas if possible */
|
||||||
|
int checkspace; /* Check disk space before installing */
|
||||||
} pmhandle_t;
|
} pmhandle_t;
|
||||||
|
|
||||||
/* global handle variable */
|
/* global handle variable */
|
||||||
|
@ -998,11 +998,13 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check available disk space */
|
/* check available disk space */
|
||||||
|
if(handle->checkspace) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "checking available disk space\n");
|
_alpm_log(PM_LOG_DEBUG, "checking available disk space\n");
|
||||||
if(_alpm_check_diskspace(trans, handle->db_local) == -1) {
|
if(_alpm_check_diskspace(trans, handle->db_local) == -1) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("not enough free disk space\n"));
|
_alpm_log(PM_LOG_ERROR, _("not enough free disk space\n"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* remove conflicting and to-be-replaced packages */
|
/* remove conflicting and to-be-replaced packages */
|
||||||
if(replaces) {
|
if(replaces) {
|
||||||
|
@ -956,6 +956,8 @@ static int _parse_options(char *key, char *value)
|
|||||||
} else if(strcmp(key, "TotalDownload") == 0) {
|
} else if(strcmp(key, "TotalDownload") == 0) {
|
||||||
config->totaldownload = 1;
|
config->totaldownload = 1;
|
||||||
pm_printf(PM_LOG_DEBUG, "config: totaldownload\n");
|
pm_printf(PM_LOG_DEBUG, "config: totaldownload\n");
|
||||||
|
} else if(strcmp(key, "CheckSpace") == 0) {
|
||||||
|
alpm_option_set_checkspace(1);
|
||||||
} else {
|
} else {
|
||||||
pm_printf(PM_LOG_ERROR, _("directive '%s' without value not recognized\n"), key);
|
pm_printf(PM_LOG_ERROR, _("directive '%s' without value not recognized\n"), key);
|
||||||
return(1);
|
return(1);
|
||||||
|
Loading…
Reference in New Issue
Block a user