Beispiel #1
0
func space_consumption(database *box.Database, arguments []string) (err error) {

	// Open database transaction
	var transaction *box.Transaction

	transaction, err = database.BeginTransaction()
	if err != nil {
		return
	}

	defer transaction.Rollback()

	// Handle arguments
	switch len(arguments) {
	case 0:
		var space map[string]uint64

		// Execute the query
		space, err = transaction.QuerySpaceConsumption()
		if err != nil {
			return
		}

		// Print result
		for user, space := range space {
			fmt.Printf("%s %d\n",
				user,
				space)
		}

	case 1:
		var user string = arguments[0]
		var space uint64

		// Execute the query
		space, err = transaction.QuerySpaceConsumptionFor(user)
		if err != nil {
			return
		}

		// Print result
		fmt.Printf("%s %d\n",
			user,
			space)

	default:
		err = fmt.Errorf("To many arguments. Usage: box_util space_consumption [USER]")
	}

	return
}